JavaScript 流程控制语句详解:if语句、switch语句、while循环、for循环等

JavaScript,作为一种广泛使用的编程语言,它的流程控制语句是构建逻辑和实现功能的基础。流程控制语句包括条件语句、循环语句和转向语句,它们是编程中不可或缺的部分。

接下来,我们将一一解析这些语句,带你走进JavaScript的世界。

一、什么是流程控制语句

流程控制语句是用来控制程序中语句执行顺序的语句,它们可以影响程序的流程,从而实现不同的逻辑。流程控制语句主要分为以下三类:
在这里插入图片描述

顺序结构: 这是最基本的流程控制,代表代码按照书写的顺序从上到下依次执行。通常程序都是从第一行代码开始顺序执行到结束的。

选择结构: 用于根据特定条件来控制代码的执行路径。常见的选择结构包括if、else、if-else if和switch等。这些语句允许程序在满足某些条件时执行特定的代码块,而在其他条件下执行另外的代码块或跳过某些代码。

循环结构: 用于重复执行某段代码直到满足退出条件为止。循环语句包括for、foreach、while和do-while等。通过这些语句,可以实现固定次数的循环或者当某个条件成立时的持续循环。

此外,还有跳转语句如break、continue和return等,它们可以改变正常的控制流程,例如跳出当前循环或者返回函数的结果。

二、条件判断语句

使用条件判断语句可以在执行某个语句之前进行判断,如果条件成立才会执行语句,条件不成立,则语句不执行。

语法一:if(条件表达式){语句…};

执行流程:
if语句在执行时,会先对条件表达式进行求值判断,

  • 如果条件表达式的值为true,则执行if后的语句,

  • 如果条件表达式的值为false,则不会执行if后的语句if语句只能控制紧随其后的那个语句。

如果希望if语句可以控制多条语句,可以将这些语句统一放在代码块中,如果就一条if语句,代码块不是必须的,但在开发中尽量写清楚。

代码演示:

<script>if(true) console.log('好好学习,天天向上');//  加上条件运算符 &&  ||var a=20;if(a>10&&a<=20){alert('a在10-20之间');alert("4567")}
</script>
语法二:if…else…语句

语法:

if(条件表达式){语句....}else{语句....
}

执行流程:
当该语句执行时,会先对if后的条件进行判断,

  • 如果该值为true,则执行if后的语句,
  • 如果该值为false,则执行else后的语句,两者选其一执行。
语法三:if…else if…else

语法:

if(条件表达式){语句....
}else if(条件表达式){语句....
}else{语句....
}

执行流程:
当该语句执行时,会从上到下依次对条件表达式进行求值,

如果值为true,则执行当前语句。

如果值为false,则继续向下判断,如果所有的条件都不满意,就执行最后一个else或者不执行,该语句中,只会有一个代码块被执行,一旦代码块执行了, 则直接结束语句。

<script>var age=16;/* if(age>=60){alert("你已经退休了~~~")}else{alert("你还没退休~~~")} */if(age>=100){alert("您老高寿呀~~~");}else if(age>=80){alert("你也不小了");} else if(age>=60){alert("你刚退休呀~~~");}else if(age>=30){alert("你已经中年了");}else if(age>=17){alert("你刚成年呀~~~");}else{alert("你还是个小孩子~~")};
</script>

三、条件分支语句

switch语句是一种多分支选择结构,它可以根据表达式的值,来选择执行不同的代码块。

语法:switch…case…

switch(条件表达式){case 表达式:语句....break;case 表达式:语句....break;default:语句...break;
}

执行流程:

在执行时,会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较。

  • 如果比较结果为true,则从当前case处开始执行代码,当前case后的所有代码都会执行;

  • 在case的后边跟着一个break关键字,这样可以确保只会执行当前case后的语句,而不会执行其他的case;

  • 如果比较结果为false,则继续向下比较;

  • 如果所有的比较结果都为false,则只执行default后的语句;

注意: switch语句和if语句的功能实际上有重复的,使用switch可以实现if的功能,同样使用if也可以实现switch的功能,所以我们使用时,可以根据自己的习惯选择。

代码演示:

<script>var num=2;switch(num){case 1:console.log("壹");//使用break可以退出switch语句break;case 2:console.log("贰");break;case 3:console.log("叁")break;default:console.log("非法数字~~~");break;              }
</script>

四、循环语句

循环语句,就是让某段代码反复执行。在JavaScript中,主要有for循环、while循环、do…while循环等。

1) while循环

语法:

while(条件表达式){语句}

while语句执行流程:

先对条件表示式进行求值判断,如果值为true,则执行循环体,循环体执行完毕以后,继续对表达式进行判断,如果值为false,则终止循环。

2) do…while循环

语法:

do{语句....}while(条件表达式)

执行流程:

do…while 语句在执行时,会先执行循环体,循环体执行完毕后,再对while后的条件表示式进行判断,如果结果为true,则继续执行,执行完毕继续判断,如果结果为false,则停止执行。

注意: 实际上以上两个语句功能类似,不同的是while 是先判断后执行,而do…while会先执行后判断,do…while可以保证循环体至少执行一次,而while不行。

想要快速入门前端开发吗?推荐一个免费前端开发基础课程,这个老师讲的特别好,零基础学习无压力,知识点结合代码,边学边练,可以免费试看试学,还有各种辅助工具和资料,非常适合新手!点这里前往学习哦!

3)for语句(for循环)

在for循环中,为我们提供了专门的位置,用来放三个表达式。

  • 初始化表达式
  • 条件表达式
  • 更新表达式

for循环的语法:

for(初始化表达式;条件表达式;更新表达式){语句....}

for循环的执行流程:

  • 初始化表达式,初始化变量(初始化表达式,只会执行一次);

  • 条件表达式,判断是否执行循环;

  • 如果为true,则执行循环,如果为false,终止循环;

  • 执行更新表达式,更新表达式执行完毕继续重复。

<script>//第一种写法for(var i=0;i<10;i++){alert(i);}//第二种写法  for循环中的三个部分都可以省略,也都可以写在外部var i=0;for(;i<10;){alert(i++);}//如果在for循环中,不写任何的表达式,只写两个;//此时循环是一个死循环,会一直执行下去,慎用for(;;){alert("hello");}
</script>

五、break和continue语句

break关键字

可以用来退出switch或循环语句,不能在if语句中使用break和continue,break关键字,会立即终止离它最近的那个循环语句。

continue关键字

可以用来跳过当次循环,同样continue也是默认只会对离它最近的循环起作用。

终止指定循环

可以为循环语句创建一个label(标签),来标识当前的循环。

语法:
label(给起的标签名字):循环语句

使用break语句时,可以在break后跟着一个label,这样break可以结束指定的循环,而不是最近的。

代码演示

<script>/*   for(var i=0;i<5;i++){console.log(i);//break;//用来结束for的循环语句,for只会循环一次if(i==2){break;//这个break是对整个for循环起作用的}} *//*    for (var i = 0; i < 5; i++) {console.log("@外层循环" + i);for (var j = 0; j < 5; j++) {break;//只会结束离他最近的内层循环console.log("内层循环" + j);}} *//*   outer: for (var i = 0; i < 5; i++) {console.log("@外层循环" + i);for (var j = 0; j < 5; j++) {break outer; //指定结束外层的for循环console.log("内层循环" + j);}} */for (var i = 0; i < 5; i++) {if (i == 2) {continue;}console.log(i);}
</script>

JavaScript的流程控制语句,就像是一把魔法棒,它能让我们的代码按照我们的意愿去运行。掌握了这些语句,我们就可以在编程的世界里自由翱翔。

希望这篇文章能帮助你更好地理解和使用JavaScript的流程控制语句,让我们一起在编程的道路上,探索更多的可能性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

刷代码随想录有感(58):二叉树的最近公共祖先

题干&#xff1a; 代码&#xff1a; class Solution { public:TreeNode* traversal(TreeNode* root, TreeNode* p, TreeNode* q){if(root NULL)return NULL;if(root p || root q)return root;TreeNode* left traversal(root->left, p, q);TreeNode* right traversal(r…

NVIDIA Omniverse Cloud API支持数字孪生开发,可解决复杂AI问题 | 最新快讯

在全球范围内&#xff0c;价值超过 50 万亿美元的重工业市场&#xff0c;正在竞相实现数字化。 基于此&#xff0c;为帮助数字孪生技术更好地赋能千行百业&#xff0c;AI 企业 NVIDIA 在架构底层算力的同时&#xff0c;也搭建了 NVIDIA AI Enterprise 和 Omniverse 两大平台。 …

【中级软件设计师】上午题14-信息安全

上午题14-信息安全 1 防火墙1.1 包过滤防火墙1.2 应用代理网关防火墙1.3 状态检测技术防火墙 2 病毒3 网络攻击4 网络安全 1 防火墙 防火墙作为网络安全体系的基础和核心控制设施&#xff0c;贯穿于受控网络通信主干线&#xff0c;对通过受控干线的任何通信行为进行安全处理&a…

【UGUI】实现长按播放动画松手停止动画播放

场景部分&#xff0c;需要把角色和动画组件、动画控制器、动画片段准备好 然后设置好转换动画的参数RUN (bool类型的) 创建一个普通按钮在UGUI里面&#xff0c;为按钮添加组件EventTrgger 在这个组件里面添加PointerDown 和PointerUp 这两个分别代表按下和弹起&#xff01; 他…

【Python小技巧】matplotlib不显示图像竟是numpy惹的祸

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、问题&#xff1a;df.plot() 显示不出图像二、尝试各种解决办法1. 增加matplotlib.use&#xff0c;设定GUI2. 升级matplotlib版本 三、numpy是个重要的库1. …

如何永久删除服务和相关文件夹

如何永久删除服务和文件夹&#xff1f; How can I remove the service and folder permanently? 以AlibabaProtect服务为例 takeown /f "C:\Program Files (x86)\AlibabaProtect sc delete AlibabaProtect我运行了上述操作&#xff0c;并通过任务管理器杀死了“阿里巴巴…

HTML5+CSS3+JS小实例:旋转渐变光标

实例:旋转渐变光标 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale…

python学习笔记-01

python 在学习之前要了解的事项&#xff1a; 1.python缩进语法要求较为严格 2.是解释型语言 3.python2版本和python3版本不兼容 本系列笔记全部基于python3 1.hello world 安装好python之后&#xff0c;可以直接打开python&#xff0c;也可以通过cmd进入python。 print(&qu…

HSM 中文应用笔记

AP32349 HSM 启动 AP32373 适用于 TC3xx 的 HSM 演示示例 AP32391 使用 HSM 安全启动 AP32399 TC3xx 调试保护&#xff08;带HSM&#xff09; AP32404 教程 TC3xx 使用 SWAP 机制进行无线软件更新 AP32456 TC3xx HSM 缓存使用教程 AP32470 HSM 演示优化代码 AP32481 教程调试器…

LineVul实验复现及相关问题

最近在复现 LineVul 这篇文章的实验&#xff0c;本文主要用于简化文章复现流程和记录复现过程中出现的问题。 1 安装依赖环境 pip install gdown pip install transformers pip install captum pip install torch torchvision torchaudio pip install numpy pip install tqdm…

实用工具radsystems,十分钟完成项目的登入注册,增删改查

发了这么多文章&#xff0c;很多人不知道这些文章是在讲什么&#xff0c;今天我来介绍一下逆天神器radsystems radsystems是一个可以快速开发的软件&#xff0c;也可以二次开发&#xff08;之前文章有讲&#xff09; 它可以帮助我们快速完成开发&#xff0c;毫不夸张的讲&…

PGSync安装使用教程(PostgreSQL数据实时同步至Elasticsearch)

说明 pgsync项目有两个&#xff0c;一个是ankane/pgsync&#xff0c;用于pgsql之间的数据同步&#xff0c;另一个是toluaina/pgsync&#xff0c;用于pgsql的数据同步至es&#xff0c;本教程适用于第二个项目。 pgsync应该是目前为止唯二支持es8的数据同步工具&#xff0c;另一…

探秘Flex布局下子元素宽度超出的那些烦心事

嘿&#xff0c;小伙伴们&#xff01;你们有没有遇到过用Flex布局的时候&#xff0c;子元素的宽度莫名其妙地超出了父元素的情况&#xff1f;别着急&#xff0c;今天我就来给大家揭秘这个问题的来龙去脉&#xff0c;以及一些解决方案。让我们一起来深入探讨&#xff01; 发现问…

Android 蓝牙实战——蓝牙音乐播放进度(二十)

对于蓝牙音乐的开发来说,播放进度是一个比较重要的数据参数,这里我们就来分析一下蓝牙音乐播放进度的相关回调。 一、回调流程 1、AvrcpControllerService 源码位置:/packages/apps/Bluetooth/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerService.java /…

Agent AI智能体的未来探讨

背景 Agent AI智能体&#xff0c;作为人工智能技术的一种重要形态&#xff0c;正逐渐融入我们的日常生活并扮演着越来越重要的角色。随着技术的不断发展和智能化水平的提高&#xff0c;Agent AI在未来社会中的角色、发展路径以及其它方面可能带来的挑战备受广泛关注。本…

代码随想录算法训练营第四十五天| 70. 爬楼梯 (进阶), 322. 零钱兑换,279.完全平方数

目录 题目链接&#xff1a;70. 爬楼梯 &#xff08;进阶&#xff09; 思路 代码 题目链接&#xff1a;322. 零钱兑换 思路 代码 题目链接&#xff1a;279.完全平方数 思路 代码 总结 题目链接&#xff1a;70. 爬楼梯 &#xff08;进阶&#xff09; 思路 依旧是转换成…

package.json.依赖版本修改判断

package.json. 的dependencies已经改了axios版本"axios": “^1.6.8”, 查看dist\cdn\axios\1.0.0\axios.min.js中内容还是&#xff1a;/* axios v0.17.1 | © 2017 by Matt Zabriskie */以为没有更新axios版本 查看当前项目使用的包以及版本&#xff0c;不包括依…

自然语言处理: RAT = CoT + RAG

Retrieval Augmented Thoughts (RAT) 是一种协同思维链 (CoT) 和检索增强生成 (RAG) 的 AI 提示策略&#xff0c;助力解决具有挑战性的长任务推理和生成。 RAG 有关于RAG的介绍可以参考我之前的博文: 自然语言处理: 第十五章RAG(Retrieval Augmented Generation) 开发能够像人…

DCEP数字人民币:中国法定区块链中数字货币

一、背景 作为全球第二大经济体&#xff0c;中国在数字货币领域的发展一直备受关注。近年来&#xff0c;中国政府积极推动数字货币的研究和试点工作&#xff0c;逐步开放数字货币交易试点&#xff0c;并计划推出中国唯一合法数字货币——数字人民币&#xff08;RMB Coin&#…

论文| Visual place recognition: A survey from deep learning perspective

2021-Visual place recognition: A survey from deep learning perspective