相关文章推荐
慷慨大方的皮带  ·  在Razor Page ...·  1 周前    · 
侠义非凡的苦瓜  ·  python - 使用 Python ...·  1 年前    · 
冷静的山羊  ·  php - MAMP ...·  1 年前    · 
酷酷的蜡烛  ·  mini gpt4部署 - 抖音·  1 年前    · 

一文理解JavaScript中while以及do while循环

1 年前 · 来自专栏 JavaScript学习笔记

先给大家分享一些JavaScript的相关资料:


一、初识

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

while语句的语法结构如下

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

执行思路:

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

执行循环体代码

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

注意:

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

课堂案例 1:

  1. 打印人的一生,从1岁到100岁
  2. 计算 1 ~ 100 之间所有整数的和

课堂案例 2:询问你爱我吗

弹出一个提示框, 你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问。

案例分析:

  • 弹出输入框,要求用户输入。
  • 判断条件比较复杂我们使用 while 循环。
  • while 循环语句中的条件表达式只要输入的不是 我爱你,就一直循环。

二、do while循环

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

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

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

执行思路:

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

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

课堂案例 :询问你爱我吗

弹出一个提示框, 你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问。

案例分析:

弹出输入框,要求用户输入。

判断条件我们使用 do…while 循环。

do… while 循环语句中的条件表达式只要输入的不是我爱你,就一直循环。

实现代码:

do {
  var love = prompt('你爱我吗?');
} while (love != '我爱你')
alert('登录成功');

三、循环小结

  • JS 中循环有 for 、while 、 do while
  • 三个循环很多情况下都可以相互替代使用
  • 如果是用来计次数,跟数字相关的,三者使用基本相同,但是我们更喜欢用 for
  • while 和 do…while 可以做更复杂的判断条件,比 for 循环灵活一些
  • while 和 do…while 执行顺序不一样,while 先判断后执行,do…while 先执行一次,再判断执行
  • while 和 do…while 执行次数不一样,do…while 至少会执行一次循环体, 而 while 可能一次也不执行
  • 实际工作中,我们更常用for 循环语句,它写法更简洁直观, 所以这个要重点学习

四、continue break

4.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 + '个包子呢');

4.2 break 关键字

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

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

for (var i = 1; i <= 5; i++) {