JavaScript while 语句
while 语句可以在某个条件表达式为真的前提下,循环执行指定的一段,直到那个表达式不为真时结束循环。—— MDN
while 语句也是一种循环语句,也称 while 循环。
while 循环接收表达式,当这个表达式结果非 false
的时候,就会执行 while 循环的块。
while (表达式) {
表达式结果为真时候执行的;
}
while 的语法相对简单,其使用的频率没有for循环
高,可以使用 for 循环完成的都可以使用 while 循环完成,反之亦然。
例如 0 到 100 的偶数,使用 while 就可以这样做:
var num =
while (num <= ) {
if (num % === ) {
console.log(num);
}
num++;
}
var i;
for (i = ; i <= ; i++) {
if (i % === ) {
console.log(i);
}
}
对比 for 循环,许多场景两者在同一问题的处理方式上区别不大。
for 循环将初始操作、循环条件、后的事情放在了规定的位置,而 while 循环只是将这些操作换个地方写而已。
事实上 for 循环也可以写得像 while 循环一样:
var num = ;
for (;num <= ;) {
if (num % === ) {
console.log(num);
}
num++;
}
换成这样的写法可以说是高度一致了。
根据个人的经验,while 比 for 循环用到的少,通常有三种情况:
相比 for 循环,while 来做无限循环更直接:
for (;;) {
console.log('我停不下来了!!');
}
console.log('永远也不会执行到这里 :)');
while(true) {
console.log('我也停不下来了!!');
}
那么问题就来了,为什么需要无限循环。
主要是想将复杂的条件拿出来,自己判断条件是否达成,然后使用 break
中断循环。
当循环条件为复杂表达式,而又不需要用到循环计数变量的时候(循环变量不一定非要是数字进行累加的)。
可以使用 while 语句实现的需求,都可以使用 for 语句实现,但 while 更适合复杂循环条件的场景。