JS - 分支结构、循环结构

关于JavaScript中的分支结构和循环结构,其实和其他编程语言区别也不是很大,只是js对这两种结构进行了相应的扩充,当然本质上并没有变化,本篇就是一篇记录博主在学习前端路上的总结和敲过的demo,实际上水份很大,但是保留博主在学习路上的笔记,对于大部分开发者而言,这些都是常识,大家都知道,但是对于博主而言,这些是博主成长路上的见证,是博主本人宝贵的财富。

JS中的分支结构

if

用于根据条件执行不同的代码块。

if (condition) {
  // 如果条件为真,执行这里的代码
}

if-else

if (condition) {
  // 如果条件为真,执行这里的代码
} else {
  // 如果条件为假,执行这里的代码
}

if - else if - else

用于根据多个条件执行不同的代码块。

if (condition1) {
  // 如果条件1为真,执行这里的代码
} else if (condition2) {
  // 如果条件2为真,执行这里的代码
} else {
  // 如果以上条件都为假,执行这里的代码
}
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>Document</title>
		<script type="text/javascript">
			/*
			 *prompt()可以弹出一个提示框,该提示框中会带有一个文本框
			 *用户可以在文本框中输入一段内容,该函数需要一个字符串作为参数
			 * 该字符串将会作为提示框的提示文字
			 * 用户输入的内容将会作为函数的返回值返回,可以定义一个变量来接受该内容
			 */
			//练习一
			/*
			var score = prompt("小明的期末考试成绩:");
			if(score == 100)
			{
			    document.write("奖励一辆BMW");
			}
			else if(score >=80 && score <=99)
			{
			    document.write("奖励一台iphone15s");
			}
			else if(score >=60 && score <80)
			{
			    document.write("奖励一本参考书");
			}
			else
			{
			    document.write("无任何奖励");
			}
			*/
			//练习二
			/*
			var height = prompt("男方身高为(单位cm):");
			var rich = prompt("男方家境情况(单位万):");
			var appearance = prompt("男方帅气值:");
			if(height >=180 && rich>=1000 && appearance >= 500)
			{
			    document.write("我一定要嫁给他");
			}
			else if(height >=180 || rich >= 1000 || appearance >= 500)
			{
			    document.write("嫁吧,比上不足,比下有余。");
			}
			else
			{
			    document.write("不嫁");
			}
			*/
			//练习三,prompt输入的变量类型是字符串,前面加个+让其变成Number类型
			var num1 = +prompt("请输入第一个整数:");
			var num2 = +prompt("请输入第二个整数:");
			var num3 = +prompt("请输入第三个整数:");
			var num4;
			console.log(typeof num1);
			/*if(num1 >= num2)
			{
			    num4 = num1;
			    num1 = num2;
			    num2 = num4;
			}
			if(num1 >= num3)
			{
			    num4 = num1;
			    num1 = num3;
			    num3 = num4;
			}
			if(num2 >= num3)
			{
			    num4 = num2;
			    num2 = num3;
			    num3 = num4;
			}
			document.write(num1 +"<" + num2 +"<" + num3);*/
		</script>
	</head>
	<body>

	</body>
</html>

switch

用于根据不同的表达式值执行不同的代码块。

switch (expression) {
  case value1:
    // 如果表达式的值等于value1,执行这里的代码
    break;
  case value2:
    // 如果表达式的值等于value2,执行这里的代码
    break;
  default:
    // 如果表达式的值不匹配任何case,执行这里的代码
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
    /*
     *对于成绩大于60分的,输出合格
     *低于60分的,输出不合格
     */
    var score = +prompt("输入你的成绩:");
    switch(true)
    {
        case score >=60:
            document.write("合格");
            break;
        default:
            document.write("不合格");
            break;
    }
    /*var num2= +prompt("输入一个数字(1~7):");
    switch(num2)
    {
        case 1:
            document.write("星期一");
            break;
        case 2:
            document.write("星期二");
            break;
        case 3:
            document.write("星期三级");
            break;
        case 4:
            document.write("星期四");
            break;
        case 5:
            document.write("星期五");
            break;
        case 6:
            document.write("星期六");
            break;
        case 7:
            document.write("星期日");
            break;
    }*/
    </script>
</head>
<body>
    
</body>
</html>

三元运算符

let result = condition ? value1 : value2;

循环结构

循环结构用于重复执行一段代码,直到满足特定条件为止。循环结构可以解决需要重复执行相同或类似任务的问题。JavaScript中存在一些特殊的循环结构,当然本质上和其他语言的循环结构大致都是相同的,万变不离其宗,大体还是相同的。接下来跟着我一起来了解一下JavaScript的循环结构吧。

for循环

这个大众都知道,只要你从事编程,这个都不知道,那么你该恶补一下基础知识了,for循环是我们用的最多的一种循环结构。他用于指定初始条件,循环条件,和每次迭代后的操作

for (初始化; 循环条件; 迭代操作) {
  // 循环体中的代码
}
//for循环从0开始,每次迭代增加1,直到i小于5为止。循环体中的代码会被执行5次,分别输出0到4。
for (let i = 0; i < 5; i++) {
  console.log(i);
}

for循环适用于已知循环次数的情况,可以通过控制循环条件和迭代操作来控制循环的执行次数。

while循环

在循环开始之前检查循环条件,只要条件为true,那就会重复执行循环体中的代码。注意:使用不当容易造成死循环,建议结合break使用

while (循环条件) {
  // 循环体中的代码
}
//while循环会在每次迭代之前检查条件i是否小于5。只要条件为真,循环体中的代码会被执行。循环体中的代码会被执行5次,分别输出0到4。
let i = 0;
while (i < 5) {
  console.log(i);
  i++;
}

while循环适用于未知循环次数的情况,只要条件为真,就会一直执行循环体中的代码。

do - while循环

do-while循环:先执行循环体中的代码,然后再检查条件。只要条件为真,就会重复执行循环体中的代码。

do {
  // 循环体中的代码
} while (循环条件);
//do-while循环会先执行循环体中的代码,然后再检查条件i是否小于5。只要条件为真,循环体中的代码会被执行。循环体中的代码会被执行5次,分别输出0到4。
let i = 0;
do {
  console.log(i);
  i++;
} while (i < 5);

do-while循环与while循环类似,但它保证循环体至少执行一次,即使条件一开始就为假。

for … in 循环

用于遍历对象中的可枚举属性

for (变量 in 对象) {
  // 循环体中的代码
}
//for...in循环会遍历person对象的每个可枚举属性,并将属性名赋值给变量key。循环体中的代码会被执行3次,分别输出"name: John"、"age: 30"和"city: New York"。
const person = {
  name: "John",
  age: 30,
  city: "New York"
};
for (let key in person) {
  console.log(key + ": " + person[key]);
}

for…in循环会遍历对象的每个可枚举属性,并将属性赋值给变量,然后执行循环体中的代码。

for … of 循环

用于遍历可迭代对象(如数组、字符串等)的元素。

for (变量 of 可迭代对象) {
  // 循环体中的代码
}
//for...of循环会遍历colors数组的每个元素,并将元素值赋值给变量color。循环体中的代码会被执行3次,分别输出"red"、"green"和"blue"。
const colors = ["red", "green", "blue"];
for (let color of colors) {
  console.log(color);
}

for…of循环会遍历可迭代对象的每个元素,并将元素赋值给变量,然后执行循环体中的代码。

break和continue

break:用于立即终止循环,并跳出循环体。当执行到 break 关键字时,循环会立即停止,不再执行循环体中剩余的代码,然后程序会继续执行循环之后的代码。

continue:用于跳过当前迭代,继续执行下一次迭代。当执行到 continue 关键字时,循环会跳过当前迭代剩余的代码,直接进入下一次迭代。

//当 i 的值等于 3 时,break 语句会被执行,循环会立即终止,输出结果为 0、1、2。
for (let i = 0; i < 5; i++) {
  if (i === 3) {
    break;
  }
  console.log(i);
}
//当 i 的值等于 2 时,continue 语句会被执行,当前迭代的剩余代码会被跳过,直接进入下一次迭代,输出结果为 0、1、3、4。
for (let i = 0; i < 5; i++) {
  if (i === 2) {
    continue;
  }
  console.log(i);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/560526.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

袁庭新ES系列15节|Elasticsearch客户端基础操作

前言 上一章节我们介绍了搭建Elasticsearch集群相关的知识。那么又该如何来操作Elasticsearch集群呢&#xff1f;在ES官网中提供了各种语言的客户端&#xff0c;我们在项目开发过程中有多种Elasticsearch版本和连接客户端可以选择&#xff0c;那么他们有什么区别&#xff1f;这…

uniapp Android 插件开发教程

一、下载uniapp提供的SDK Android 离线SDK - 正式版 | uni小程序SDK 二、在uniapp创建一个项目 查看包名&#xff1a;发行--> 原生app 云打包 三、进入dcloud官网 开发者中心 进入 应用管理 --> 我的应用 --> 点击应用名称-->各平台信息-->新增 这里需要这…

【可视化大屏开发】19. 加餐-百度地图API实现导航加线路热力图

需求 Web端使用场景中会涉及到地图导航路线情况&#xff0c;并利用热力图显示路况信息。 实现效果如下&#xff1a; 输入起始地点&#xff0c;选择并开始导航 最终效果 思路步骤 利用百度地图API显示地图交通拥堵情况的热力图&#xff0c;需要按照以下步骤进行开发 步骤1&a…

面试被问懵了:手撕 Transformer

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 今年最大…

Vue入门篇:概念,快速入门,插值表达式,核心特性,基本Vue指令

目录 1.Vue是什么2.快速入门3.插值表达式{{}}1.作用:2.语法:3.插值表达式的注意点: 4.Vue响应式核心特性5.Vue指令 1.Vue是什么 Vue是一个流行的JavaScript框架&#xff0c;用于构建用户界面。它是一种用于构建单页面应用程序&#xff08;SPA&#xff09;的渐进式框架&#xff…

MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID等字段对应)

文章目录 MySQL 列数据跨表拷贝&#xff0c;一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段&#xff08;A、B表通过ID等字段对应&#xff09;背景定义表填充测试数据跨表一 一对应拷贝列数据SQL参考资料 MySQL 列数据跨表拷贝&#xff0c;一句SQL快速将表A每条…

【C++】:函数重载,引用,内联函数,auto关键字,基于范围的for循环,nullptr关键字

目录 一&#xff0c;函数重载1.1 函数重载的定义1.1.1.形参的类型不同1.1.2参数的个数不同1.1.3.参数的顺序不同1.1.4.有一个是缺省参数构成重载。但是调用时存在歧义1.1.5.返回值不同&#xff0c;不构成重载。因为返回值可接收&#xff0c;可不接受&#xff0c;调用函数产生歧…

Python 比较文本文件

1、问题背景 我们需要比较一个文本文件 F 与路径下多个其他文本文件之间的差异。我们已经编写了以下代码&#xff0c;但只能输出一个文件的比较结果。我们需要修改代码&#xff0c;以便比较所有文件并打印所有结果。 import difflib import fnmatch import osfilelist[] f op…

Don‘t fly solo! 量化之路,AI伴飞

在投资界&#xff0c;巴菲特与查理.芒格的神仙友谊&#xff0c;是他们财富神话之外的另一段传奇。巴菲特曾这样评价芒格&#xff1a;他用思想的力量拓展了我的视野&#xff0c;让我以火箭的速度&#xff0c;从猩猩进化到人类。 人生何幸能得到一知己。如果没有这样的机缘&…

使用共振峰提取元音音素/从声音生成口型动画

视频效果 我前段时间研究了下从声音提取共振峰的方法。今天测试了下实际效果。 我使用一段33秒的女声视频&#xff0c;提取元音后使用静态视位图序列生成了一个视频&#xff0c;效果如下&#xff1a; b站视频&#xff1a; https://www.bilibili.com/video/BV1JD421H7m9/?vd_…

泛型的初步认识(2)

前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&#x…

MYSQL之增删改查(中)

前言&#xff1a; 以下是MySQL最基本的增删改查语句&#xff0c;很多IT工作者都必须要会的命令&#xff0c;也 是IT行业面试最常考的知识点&#xff0c;由于是入门级基础命令&#xff0c;所有所有操作都建立在单表 上&#xff0c;未涉及多表操作。 4、“查”——之单表查询 My…

html select 支持内容过滤列表 -bootstrap实现

实现使用bootstrap-select插件 http://silviomoreto.github.io/bootstrap-select <!DOCTYPE html> <html> <meta charset"UTF-8"> <head><title>jQuery bootstrap-select可搜索多选下拉列表插件-www.daimajiayuan.com</title>&…

部署ELFK+zookeeper+kafka架构

目录 前言 一、环境部署 二、部署ELFK 1、ELFK ElasticSearch 集群部署 1.1 配置本地hosts文件 1.2 安装 elasticsearch-rpm 包并加载系统服务 1.3 修改 elasticsearch 主配置文件 1.4 创建数据存放路径并授权 1.5 启动elasticsearch是否成功开启 1.6 查看节点信息 …

面试不慌张:一文读懂FactoryBean的实现原理

大家好&#xff0c;我是石头~ 在深入探讨Spring框架内部机制时&#xff0c;FactoryBean无疑是一个关键角色&#xff0c;也是面试中经常出现的熟悉面孔。 不同于普通Java Bean&#xff0c;FactoryBean是一种特殊的Bean类型&#xff0c;它的存在并非为了提供业务逻辑&#xff0c;…

使用Python进行自动化测试

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 如何使用Python进行自动化测试&#xff1a;测试框架的选择与应用 自动化测试是软件开发过程…

代码随想录算法训练营DAY28|C++回溯算法Part.4|93.复原IP地址、78.子集、90.子集II

文章目录 93.复原IP地址思路确定非法的范围树形结构 伪代码 78.子集思路伪代码实现CPP代码 90.子集II思路CPP代码用used去重的办法用set去重的版本不使用used数组、set的版本 93.复原IP地址 力扣题目链接 文章讲解&#xff1a;93.复原IP地址 视频讲解&#xff1a;回溯算法如何分…

curlftpfs和fusermount

curlftpfs 是一种 Linux 系统下用来将 FTP 服务器挂载为文件系统的工具&#xff0c;这意味着可以通过本地目录来访问和操作 FTP 服务器上的文件。 挂载FTP服务器到本地系统 为了挂载FTP服务器到本地系统中&#xff0c;使用curlftpfs工具&#xff0c;可以按照以下格式书写命令…

如何通过MSTSC连接Ubuntu的远程桌面?

正文共&#xff1a;666 字 12 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面我们介绍了如何通过VNC连接Ubuntu 18.04的远程桌面&#xff08;Ubuntu 18.04开启远程桌面连接&#xff09;&#xff0c;非常简单。但是有小伙伴咨询如何使用微软的远程桌面连接MSTSC&#xff08…

黑灰产行业简介

参考&#xff1a;2021年黑灰产行业研究及趋势洞察报告 1. 有哪些场景面临大量黑灰产攻击&#xff1f; 1.营销活动场景 -- 该场景最为猖獗 1. 抹机及接码注册&#xff1a;黑灰产会使用抹机工具修改设备参数伪装成一台新设备&#xff0c;再配合联系卡商进行手机号接码&#xf…
最新文章