JavaScript流程控制(循环)


Posted in Javascript onDecember 06, 2021

一、for 循环

在程序中,一组被重复执行的语句被称之为循环体,能否继续重复执行,取决于循环的终止条件。由循环体及循环的终止条件组成的语句,被称之为循环语句。
for 循环主要用于把某些代码循环若干次,通常跟计数有关系。

其语法结构如下:

for(初始化变量; 条件表达式; 操作表达式 ){
    //循环体
}
  • 初始化变量:通常被用于初始化一个计数器,该表达式可以使用 var 关键字声明新的变量,这个变量帮我们来记录次数。
  • 条件表达式:用于确定每一次循环是否能被执行。如果结果是 true 就继续循环,否则退出循环。
  • 操作表达式:每次循环的最后都要执行的表达式。通常被用于更新或者递增计数器变量。当然,递减变量也是可以的。

例如用for循环执行相同的代码:输出十次‘我爱学前端'。

for(i=0;i<10;i++){
    console.log('我爱学前端');
}

输出结果为:

JavaScript流程控制(循环)

再例如用for循环执行不同的代码:求输出一个人1到20岁。

for (var i = 1; i <= 20; i++) {
    console.log('这个人今年' + i + '岁了');
}

输出结果为:

JavaScript流程控制(循环)

二、双重 for 循环

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

语法结构:

for (外循环的初始; 外循环的条件; 外循环的操作表达式) {
    for (内循环的初始; 内循环的条件; 内循环的操作表达式) {  
       需执行的代码;
   }
}
  • 内层循环可以看做外层循环的语句
  • 内层循环执行的顺序也要遵循 for 循环的执行顺序
  • 外层循环执行一次,内层循环要执行全部次数

例如打印五行五列星星。

核心:

  • (1)内层循环负责一行打印五个星星
  • (2)外层循环负责打印五行

 

var star = '';
for (var j = 1; j <= 3; j++) {
    for (var i = 1; i <= 3; i++) {
      star += '☆'
    }
    // 每次满 5个星星 就 加一次换行
    star += '\n'
}
console.log(star);

运行结果为:

JavaScript流程控制(循环)

三、while 循环

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

while语句的语法结构如下:

while (条件表达式) {
    // 循环体代码 
}

执行思路:

  • (1)先执行条件表达式,如果结果为 true,则执行循环体代码;如果为 false,则退出循环,执行后面代码
  • (2)执行循环体代码
  • (3)循环体代码执行完毕后,程序会继续判断执行条件表达式,如条件仍为true,则会继续执行循环体,直到循环条件为 false 时,整个循环过程才会结束

需要注意的是:

使用 while 循环时一定要注意,它必须要有退出条件,否则会成为死循环
while 循环和 for 循环的不同之处在于 while 循环可以做较为复杂的条件判断,比如判断用户名和密码

例如通过while循环计算 1 ~ 100 之间所有整数的和。

var sum = 0;
var i = 0;
while(i<=100){
    sum += i;
    i++;
}
console.log(sum);

输出的结果为:

JavaScript流程控制(循环)

四、do while 循环

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

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

do {
    // 循环体代码 - 条件表达式为 true 时重复执行循环体代码
} while(条件表达式);

执行思路:

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

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

例如:通过do while循环计算 1 ~ 100 之间所有整数的和。

var sum = 0;
var i = 0;
do{
    sum += i;
    i++;
}while(i<=100)
console.log(sum);

五、循环小结

JS 中循环有 for while do while
三个循环很多情况下都可以相互替代使用
如果是用来计次数,跟数字相关的,三者使用基本相同,但是我们更喜欢用 for
while do…while 可以做更复杂的判断条件,比 for 循环灵活一些
while do…while 执行顺序不一样,while 先判断后执行,do…while 先执行一次,再判断执行
while do…while 执行次数不一样,do…while 至少会执行一次循环体, 而 while 可能一次也不执行

六、continue break

1、continue关键字

continue 关键字用于立即跳出本次循环,继续下一次循环(本次循环体中 continue 之后的代码就会少执行一次)。
例如:吃5个包子,第3个有虫子,就扔掉第3个,继续吃第4个第5个包子,

其代码实现如下:

for (var i = 1; i <= 5; i++) {
     if (i == 3) {
         console.log('这个包子有虫子,扔掉');
         continue; // 跳出本次循环,跳出的是第3次循环 
      }
      console.log('我正在吃第' + i + '个包子呢');
 }

2、break关键字

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

例如:吃5个包子,吃到第3个发现里面有半个虫子,其余的不吃了,其代码实现如下:

for (var i = 1; i <= 5; i++) {
   if (i == 3) {
       break; // 直接退出整个for 循环,跳到整个for下面的语句
   }
   console.log('我正在吃第' + i + '个包子');
 }

到此这篇关于JavaScript流程控(循环)的文章就介绍到这了,更多相关JavaScript流程控内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
js中 javascript:void(0) 用法详解
Aug 11 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
Sep 02 Javascript
快速掌握Node.js环境的安装与运行方法
Feb 16 Javascript
js解决movebox移动问题
Mar 29 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
Aug 02 Javascript
BootStrapTable 单选及取值的实现方法
Jan 10 Javascript
Javascript实现页面滚动时导航智能定位
May 06 Javascript
jquery中done和then的区别(详解)
Dec 19 jQuery
js实现简单放大镜效果
Mar 07 Javascript
vue中keep-alive内置组件缓存的实例代码
Apr 16 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 Javascript
JavaScript流程控制(分支)
Dec 06 #Javascript
JavaScript实现队列结构过程
Dec 06 #Javascript
JavaScript实现栈结构详细过程
Dec 06 #Javascript
JavaScript实现优先级队列
Dec 06 #Javascript
JavaScript阻止事件冒泡的方法
Dec 06 #Javascript
JavaScript执行机制详细介绍
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 #Vue.js
You might like
php你的验证码安全码?
2007/01/02 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
JavaScript学习历程和心得小结
2010/08/16 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Python tkinter常用操作代码实例
2020/01/03 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
新媒传信软件测试面试题
2013/02/24 面试题
植树节标语
2014/06/27 职场文书
卖房授权委托书样本
2014/10/05 职场文书
2014年关工委工作总结
2014/11/17 职场文书
2015年领班工作总结
2015/04/29 职场文书
合同审查法律意见书
2015/06/04 职场文书
团委副书记工作总结
2015/08/14 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏