完全掌握javascript流程控制结构(顺序结构、分支结构和循环结构)

本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于javascript中流程控制结构的相关问题,流程控制主要有三种结构:分别是顺序结构,分支结构和循环结构,这三种结构代表代码执行的顺序,下面一起来看一下,希望对大家有帮助。

完全掌握javascript流程控制结构(顺序结构、分支结构和循环结构)

【相关推荐:javascript视频教程、web前端】

流程控制语句

在一个程序执行的过程,各条代码的执行顺序对结果是有直接影响的,汗多时候我们要通过控制代码的执行顺序来实现我们要完成的功能

简要理解:流程控制就是控制我们所写的代码按照什么样的顺序来执行,以此达到我们的目的。

立即学习“Java免费学习笔记(深入)”;

流程控制主要有三种结构:分别是顺序结构,分支结构和循环结构,这三种结构代表代码执行的顺序。

在这里插入图片描述

顺序结构

顺序结构是程序中最简单的,最基础的流程控制,我们之前写的代码都属于顺序结构(也就是从上往下依次执行),它没有固定的语法结构,程序会按照代码的先后顺序,依次执行

分支结构

由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果

1.21js语言提供了两种分支结构语句

if语句switch语句

if语句

//条件成立执行代码,否则什么也不做if(条件表达式){//条件成立执行的代码语==条件表达式为真才执行}

语句可以理解为一个行为,循环语句和分支语句就是典型的语句,一个程序由很多个语句组成,一般情况下,会分割成一个一个的语句

代码示范

var age=19;if(age>=18){console.log('你已经是成年人了');            //输出你已经是成年人了,因为age=19;,大于18就会执行if里面的语句}var age=1;if(age>=18){console.log('你已经是成年人了');            //啥也不输出。age=1;<18,不会执行if里面的语句,故啥没有}

执行流程
在这里插入图片描述

if的加强版if else语句(双分支语句)

语法结构

//条件成立,执行if里面代码,否则执行else里面的代码

if(条件表达式){

//满足条件执行的代码

}else{

//不满足条件执行的代码

}

执行流程

在这里插入图片描述

代码示范

var age=prompt('请输入你的年龄');//用户输入if(age>=18){console.log('你可以喝酒了');}else{console.log('不好意思未成年人只能喝AD钙');}//判断年份是否为润年var year=prompt('请输入年份:');if(year%4==0&&year%100!=0||year%400==0){alert('您输入的年份是闰年');}else{alert('您输入的年份是平年');}

if 语句的超级加强版 if else if(多分支语句)

语法结构

//适用于检查多重条件

if(条件表达式){

语句1;

}else if(条件表示式){

语句2;

}else if(条件表示式){

语句3;

……

}else{

//上述条件都不成立执行此代码

}

流程控制

在这里插入图片描述

代码示范

//迷你计算器  : 输入两个数以及运算符号得出相应var yi = +prompt('请输入第一个数字'); //请用加减乘除隐式转换成数字类型,或者用praseInt(变量)或parsefloat(变量)整数和浮点数var fuhao = prompt('请输入运算符');var er = +prompt('请输入第二个数字');if (fuhao == '+') {var shu = yi + er;} else if (fuhao == '-') {var shu = yi - er;} else if (fuhao == '/') {var shu = yi / er;} else if (fuhao == '*') {var shu = yi * er;} else if (fuhao == '%') {var shu = yi % er;} else {alert('请按要求输入:');}alert(shu);

switch语句

switch语句也是多分支语句,它用于基于不同的条件;来执行不同的代码,当要针对变量设置一系列的特定值时选用switch

switch(表示式){

case value1:

//表达式等于value1时要执行的代码

break;

case value2:

//表达式等于value2时要执行的代码

break;

default:

//表达式不等于任意一个value时要执行的代码

}

流程控制

在这里插入图片描述

代码示范

var fruit =prompt('请输入你要买的水果:');switch(fruit){case '苹果':alert('苹果的价格是:3.5/斤');break;case '荔枝':alert('荔枝的价格是:10.5/斤');break;default:alert('没有水果');}

注意

我们在开发里表达式我们经常写成变量当fruit的值和case 里面的值匹配时必须是全等,也就是数据类型和值都必须一样break 如果当前的case里面没有break 则不会退出switch 会继续执行下一个case

switch语句和if else if语句的区别

一般情况下,它们两个语句可以相互转换

switch ……case 语句通常处理case为比较确定值的情况,而if ……else ……语句更加灵活,常用于范围判断(大于,等于某个范围)

switch语句进行条件判断后直接执行到程序的条件语句,效率更高,而if ……else ……语句有几种条件,就得判断多次。

当分支比较少时,if……else……语句的执行效率比switch语句高

当分支比较多时,switch语句的执行效率比较高,而且结构更清晰

循环结构

循环的目的

在实际问题中,有许多具有规律性的重复操作,因此在程序中要执行这类操作就要重复执行某些语句

Js中的循环

在Js中,主要有三种类型的循环语句

Shell脚本编写基础 中文WORD版 Shell脚本编写基础 中文WORD版

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统

Shell脚本编写基础 中文WORD版 24 查看详情 Shell脚本编写基础 中文WORD版 for循环while循环do ……while循环

for循环

在程序中,一组被重复执行的语句被称为循环体,能否继续重复执行,取决于循环终止的条件,由循环体及

循环终止条件组成的语句,被称为循环语句

语法结构

for循环主要用于把某些代码重复若干次,通常跟计数有关。其语句结构如下

for(初始化变量;条件表达式;操作表达式){

//循环体

}

流程控制

在这里插入图片描述

代码示范

for (var i=1;i<=10;i++){console.log('你喜欢我吗?');}//计算班级总成绩,以及平均分var num = prompt('请输入班级的总人数')var sum = 0,average = 0;for (var i = 1; i <= num; i++) {var score = prompt('请输入第' + i + '个学生的成绩')//从prompt取过来的数据是字符串需要转换成数字sum += parseInt(score);}average = sum / num;alert('班级的总成绩:' + sum);alert('班级的平均分:' + sum);//一行打印5颗心for (var i=0;i<=4;i++){console.log('*');}

双层for循环(循环嵌套)

循环嵌套是指在一个循环语句里再定义一个循环语句的语法结构,例如在for循环里再嵌套一个for循环,这样的for循环语句我们称之为双层for循环

我们把里面的循环称之为内层循环,外面的 称之为外层循环

外层循环循环一次,内层循环从头到尾执行一遍

代码示范

//低级:5行5列var str='';for  (var i=0;i<=4;i++){for (var j=0;j<=4;j++){str+='*';}str+='n';}console.log(str);//高级:n行n列var rows = prompt('请输入行数:');var cols = prompt('请输入列数');var str='';for (var i = 1; i <= rows; i++) {for (var j = 1; j <= cols; j++) {str+='*';}str+='n';}console.log(str);//打印倒三角型形var str='';for (var i=1;i<=10;i++){for (var j=i;j<=10;j++){str+='*';}str+='n';}console.log(str);   /*   1********** 10 2*********93********84*******75******66*****57****48***39**210*1  *///核心算法:var j=i;j<=10;j++//思路:先分析结果,观察行与列关系。再确定内层循环的算法//打印正三角形,同上思路。var str='';for (var i=1;i<=9;i++){for (var j=1;j<=i;j++){str+='*';}str+='n';}console.log(str);//打印九九乘法表,就是把正三角形的星号换成等式var str = '';for (var i = 1; i <= 9; i++) {for (var j = 1; j <= i; j++) {/* str+='*'; */str += i + '*' + i + '=' + i * j + ' t';}str += 'n';}console.log(str);//切记:外层循环循环一次,内层循环从头到尾执行一遍,只是打印图形的本质

for循环小结

for循环可以重复执行某些重复的代码for循环可以超重复执行不同的代码,因为我们有计数器for循环可以重复执行某些操作,比如算术运算加法操作双层for循环:外层循环循环一次,内层循环从头到尾执行一遍for循环的循环条件是和数字直接相关的循环

while循环

while语句可以在条件表达式为真的前提下,循环执行指定的一段代码,直到表达式不满足条件时结束循环

while语句的语法结构

while(条件表达式){

//循环体语句;

}

执行思路:

先执行条件表达式,如果条件为true,则执行循环体代码,反之,则退出循环,执行后面的代码

执行循环体代码

循环体代码执行完毕后,程序会继续判断执行条件表达式,如果条件还是为true则继续执行循环体,直到循环条件为false时,整个循环体过程才会结束

流程控制图如下

在这里插入图片描述

代码示范

var num=1; //初始化变量while(num<=10){//条件表达式console.log('Hello world');num++;//操作表达式}

注意:

while里面也有操作表示式, 完成计数器的更新,防止死循环(我没加操作表达式,去运行代码结果谷歌浏览器界面黑了)

里面应该也有计数器初始化变量

while循环在某种程度上可以与for循环等价,只需要把while里面初始化变量;条件表达式;操作表达式;放到for循环里就可以了

代码示范

//打印人的一生,从1岁到120岁 var age = 1;while (age <= 120) {console.log('这个人今年' + age + '岁了');age++;}//2.计算1~100之间的所有整数和var sum = 0,i = 1;while (i <= 100) {sum += i;i++;}console.log(sum); //3.单出一个对话框,你爱我吗?如果输入我爱你,就提示结束,否则一直询问var message='你爱我吗';while(message!=='我爱你'){message=prompt('你爱我吗?');}alert('我也爱你啊');

do ……while循环

do……while 语句其实就是while语句的一个变种,该循环会先执行一次代码块,然后对条件表达式进行判断,如果条件为真,就会重复执行循环体,否则退出循环

do……while语句的语法结构如下

do {

//循环体代码- 条件表达式为true时重复执行循环体代码

}

执行思路:

先执行一次循环体代码

再执行条件表达式,如果结果为true,则继续执行循环体代码,如果为false,则退出循环,继续执行后面的代码

注意:先执行循环体语句,再判断,我们就会发现do……while循环语句至少会执行一次循环体。

流程控制

在这里插入图片描述

代码示范

//打印人的一生,从1岁到120岁var age = 1;do {console.log('这个人今年' + age + '岁了');age++;} while (age <= 120);//2.计算1~100之间的所有整数和var sum = 0,i = 1;do {sum += i;i++;} while (i <= 100)console.log(sum);//3.单出一个对话框,你爱我吗?如果输入我爱你,就提示结束,否则一直询问var message = '你爱我吗';do {message = prompt('你爱我吗?');} while (message !== '我爱你');alert('我也爱你啊');

循环小结

JS中循环有for,while,do……while三种循环很多情况下都可以相互交替使用如果是用来计次数,跟数字有关的,三者使用基本相同,更推荐使用forwhile,do……while可以做更加复杂的判断条件,比for循环灵活一些while和do…… while执行顺序不一样,while先判断后执行,do……while先执行一次,再判断执行while和do…… while执行次数不一样,do……while至少会执行一次循环体,而while可能一次也不执行重点学习for循环语句,因为它写法更简洁

continue 和break

continue关键字用于立即跳出本次循环,继续下一次循环(本次循环体中continue之后的代码就会少执行一次)。

如:吃5个包子,第三个有虫子,就扔掉第三个,继续吃第四个第五个包子

代码示范

for (var i = 1; i <= 5; i++) {if (i == 3) {continue;}console.log('我吃了第' + i + '个包子');}结果: //我吃了第1个包子      //我吃了第2个包子      //我吃了第4个包子      //我吃了第5个包子

break关键字

break关键字用于立即跳出整个循环(循环结束)

如:吃五个包子,吃到第三个又发现了一条虫,就没胃口吃了。

代码示范

for (var i = 1; i <= 5; i++) {if (i == 3) {break;}console.log('我吃了第' + i + '个包子');}结果;//我吃了第1个包子//我吃了第2个包子

命名规范及其语法

标识符命名规范

变量,函数名必须有意义变量的名称一般用名词函数的名称一般用动词

单行注释规范

for (var i = 1; i <= 5; i++) {if (i == 3) {continue; //单行注释前面 注意前面有个空格}console.log('我吃了第' + i + '个包子');}

操作符规范

//操作符的左右两侧各保留一个空格for (var i = 1; i <= 5; i++) {if (i == 3) {break;}console.log('我吃了第' + i + '个包子');}

【相关推荐:javascript视频教程、web前端】

以上就是完全掌握javascript流程控制结构(顺序结构、分支结构和循环结构)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/836108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
百度输入法怎么添加或删除自定义短语_百度输入法短语管理与编辑技巧
上一篇 2025年11月27日 10:29:38
他让盆栽控制大砍刀、驾驶无人机,还让苍蝇敲键盘发帖,网友:好怪,再看一眼
下一篇 2025年11月27日 10:29:39

相关推荐

  • 修复Django电商项目中AJAX过滤产品列表图片不显示问题

    在Django电商项目中,当使用AJAX动态加载过滤后的产品列表时,常遇到图片无法正常显示的问题。这通常是由于前端模板中图片加载方式(如data-setbg属性结合JavaScript库)与AJAX动态内容更新机制不兼容所致。解决方案是直接在AJAX返回的HTML中使用标准的标签来渲染图片,确保浏览…

    2026年5月10日
    000
  • 开源免费PHP工具 PHP开发效率提升利器

    推荐开源免费PHP开发工具以提升效率:VS Code、Sublime Text轻量高效,PhpStorm专业强大;调试用Xdebug、Kint、Ray;依赖管理选Composer;代码质量工具包括PHPStan、Psalm、PHP_CodeSniffer;数据库管理可用%ignore_a_1%MyA…

    2026年5月10日
    000
  • Golang JSON序列化:控制敏感字段暴露的最佳实践

    本教程探讨golang中如何高效控制结构体字段在json序列化时的可见性。当需要将包含敏感信息的结构体数组转换为json响应时,通过利用`encoding/json`包提供的结构体标签,特别是`json:”-“`,可以轻松实现对特定字段的忽略,从而避免敏感数据泄露,确保api…

    2026年5月10日
    000
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • vscode上怎么运行html_vscode上运行html步骤【指南】

    首先保存文件为.html格式,再通过浏览器或Live Server插件打开预览;推荐安装Live Server实现本地服务器运行与实时刷新,提升开发体验。 在 VS Code 上运行 HTML 文件并不需要复杂的配置,只需几个简单步骤即可预览页面效果。VS Code 本身是一个代码编辑器,不直接运行…

    2026年5月10日
    100
  • 修复点击时按钮抖动:CSS垂直对齐实践

    本文探讨了在Web开发中,交互式按钮(如播放/暂停按钮)在点击时发生意外垂直位移的问题。通过分析CSS样式变化对元素布局的影响,我们发现这是由于按钮不同状态下的边框样式和内边距改变,以及默认的垂直对齐行为共同作用所致。核心解决方案是利用CSS的vertical-align属性,将其设置为middle…

    2026年5月10日
    100
  • 《魔兽世界》将于6月11日开启国服回归技术测试

    《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试

    《%ign%ignore_a_1%re_a_1%》官方宣布,将于6月11日开启国服回归技术测试,时间为7天,并称可以在6月内正式开服,玩家们可以访问官网下载战网客户端并预下载“巫妖王之怒”客户端,技术测试详情见下图。 WordAi WordAI是一个AI驱动的内容重写平台 53 查看详情 以上就是《…

    2026年5月10日 用户投稿
    200
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    100
  • 前端缓存策略与JavaScript存储管理

    根据数据特性选择合适的存储方式并制定清晰的读写与清理逻辑,能显著提升前端性能;合理运用Cookie、localStorage、sessionStorage、IndexedDB及Cache API,结合缓存策略与定期清理机制,可在保证用户体验的同时避免安全与性能隐患。 前端缓存和JavaScript存…

    2026年5月10日
    200
  • HTML5网页如何实现手势操作 HTML5网页移动端交互的处理技巧

    首先利用原生touch事件实现滑动判断,再通过preventDefault解决滚动冲突,接着引入Hammer.js处理复杂手势,最后通过优化点击区域、避免事件冲突和增加视觉反馈提升体验。 在移动端浏览器中,HTML5网页可以通过触摸事件实现手势操作,提升用户体验。虽然原生JavaScript提供了基…

    2026年5月10日
    000
  • 深入理解 Express.js 中 next() 参数的作用与中间件机制

    本文深入探讨 express.js 中间件函数中的 `next()` 参数。它负责将控制权传递给请求-响应周期中的下一个中间件或路由处理程序。文章将详细解释 `next()` 的工作原理、中间件的注册与执行顺序,以及不正确使用 `next()` 可能导致请求挂起的风险,并通过代码示例和实际应用场景,…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • JavaScript 闭包:理解闭包原理与内存泄漏问题

    闭包是函数访问其外部作用域变量的能力,即使外部函数已执行完毕。如 inner 函数引用 outer 中的 count,形成闭包,使变量持久存在。闭包本身无害,但可能因延长变量生命周期导致内存泄漏,例如事件监听器引用大对象时。若未及时清理 DOM 事件或定时器,闭包会阻止垃圾回收,造成内存占用过高。解…

    2026年5月10日
    100
  • JavaScript 动态菜单点击高亮效果实现教程

    本教程详细介绍了如何使用 JavaScript 实现动态菜单的点击高亮功能。通过事件委托和状态管理,当用户点击菜单项时,被点击项会高亮显示(绿色),同时其他菜单项恢复默认样式(白色)。这种方法避免了不必要的DOM操作,提高了性能和代码可维护性,确保了无论点击方向如何,功能都能稳定运行。 动态菜单高亮…

    2026年5月10日
    200
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    100
  • 谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    使用谷歌浏览器的开发者工具截图步骤:1. 按ctrl+shift+i(windows/linux)或cmd+option+i(mac)打开开发者工具。2. 点击右上角三个点,选择”更多工具”,再选择”截图”。3. 选择截取整个页面。推荐的谷歌浏览器扩展…

    2026年5月10日 用户投稿
    100
  • JavaScript函数中插入加载动画(Spinner)的正确方法

    本文旨在解决在JavaScript函数中插入加载动画(Spinner)时遇到的异步问题。通过引入async/await和Promise.all,确保在数据处理完成前后正确显示和隐藏加载动画,提升用户体验。我们将提供两种实现方案,并详细解释其原理和优势。 在Web开发中,当执行耗时操作时,显示加载动画…

    2026年5月10日
    100
  • Golang空接口如何应用在项目中

    空接口可用于接收任意类型值,常见于日志函数、通用数据结构、JSON动态解析及配置驱动逻辑,提升代码灵活性,但需配合类型断言确保安全,避免滥用以降低维护成本。 空接口 interface{} 在 Go 语言中是一个非常灵活的类型,它可以存储任何类型的值。虽然它牺牲了一部分类型安全,但在实际项目中合理使…

    2026年5月10日
    100
  • 动态更新圆形进度条:JavaScript成绩计算器集成指南

    本文档旨在指导开发者如何将JavaScript成绩计算系统与动态圆形进度条集成,实现可视化展示平均成绩。我们将详细讲解如何修改现有的JavaScript代码,使其在计算出平均分后,能够动态更新圆形进度条的进度,从而提供更直观的用户体验。本文档包含详细的代码示例和注意事项,帮助开发者轻松实现这一功能。…

    2026年5月10日
    000
  • CSS伪元素与固定背景:移动友好的实现策略

    本文深入探讨了如何利用CSS的::before伪元素、position: fixed和z-index属性,创建一种在移动设备上表现更稳定的全屏固定背景效果,以替代传统background-attachment: fixed可能存在的兼容性问题。教程将详细解析这些核心CSS概念及其在构建响应式布局中的…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信