JavaScript while 语句

while 语句可以在某个条件表达式为真的前提下,循环执行指定的一段代码,直到那个表达式不为真时结束循环。—— MDN while 语句也是一种循环语句,也称 while 循环。 while 循环接收一个表达式,当这个表达式结果非 false 的时候,就会执行 while 循环的代码块。...

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

while 语句也是一种循环语句,也称 while 循环。

while 循环接收一个表达式,当这个表达式结果非 false 的时候,就会执行 while 循环的代码块。

1. 基本语法

while (表达式) {
  表达式结果为真时候执行的代码;
}

while 的语法相对简单,其使用的频率没有for循环高,可以使用 for 循环完成的都可以使用 while 循环完成,反之亦然。

例如输出 0 到 100 的偶数,使用 while 就可以这样做:

var num = 0
while (num <= 100) {
  if (num % 2 === 0) {
    console.log(num);
  }

  num++;
}
var i;
for (i = 0; i <= 100; i++) {
if (i % 2 === 0) {
    console.log(i);
  }
}

对比 for 循环,许多场景两者在同一问题的处理方式上区别不大。

for 循环将初始操作、循环条件、条件判断后要做的事情放在了规定的位置,而 while 循环只是将这些操作换个地方写而已。

事实上 for 循环也可以写得像 while 循环一样:

var num = 0;
for (;num <= 100;) {
  if (num % 2 === 0) {
    console.log(num);
  }

  num++;
}

换成这样的写法可以说是高度一致了。

2. 使用 while 的场景

根据个人的经验,while 比 for 循环用到的少,通常有三种情况:

  • 需要“无限循环”

相比 for 循环,while 来做无限循环更直接:

for (;;) {
  console.log('我停不下来了!!');
}

console.log('永远也不会执行到这里 :)');

while(true) {
  console.log('我也停不下来了!!');
}

那么问题就来了,为什么需要无限循环。

主要是想将复杂的条件拿出来,自己判断条件是否达成,然后使用 break 中断循环。

  • 有许多不可控的量构成循环条件

当循环条件为一个复杂表达式,而又不需要用到循环计数变量的时候(循环变量不一定非要是一个数字进行累加的)。

  • 通过循环对已有变量做操作,并将这个变量作为条件或者构成条件的成员

3. 小结

可以使用 while 语句实现的需求,都可以使用 for 语句实现,但 while 更适合复杂循环条件的场景。

评论0

首页 导航 会员 客服