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