6.3 循环

  前面介绍过,如果一个条件为真,条件语句允许执行一段代码一次。另一方面,循环则根据一个条件是否持续为真,允许执行一段代码多次。例如,当盘子中有食物时,你就要一直吃,或者,当脸脏了,你就要一直洗。

《javascript-少儿编程》第六章条件与循环之while循环

6.3.1 while 循环

  While循环是最简单的循环类型。While循环重复执行它的主体,直到特定条件不再为真。编写while循环,就像是在说:“当这个条件为真时,一直这么做。当条件变为假时,停止这么做。”

  如图6-4所示,当循环使用while关键字时,后边跟着一个带圆括号的条件,然后是放在一个花括号中的主体。

《javascript-少儿编程》第六章条件与循环之while循环

图6-4 while 循环的一般结构

  就像if语句一样,如果条件为真,会执行while循环的主体。和if语句不同的是,执行完主体之后,会再次检查条件,如果条件仍然为真,会再次运行主体。循环往复,直到条件为假。

用while循环数羊

  假设你难以入睡,想要数羊。但是,你是一名程序员,为什么不编写一个程序来替你数羊呢?

《javascript-少儿编程》第六章条件与循环之while循环

  创建了一个名为sheepCounted的变量,并且把它的值设置为0.当到达❶处这个while循环时,查看sheepCounted是否小于10.因为0小于10,执行花括号中的代码(循环的主体),并且把”I have counted 0sheep!”。接下来,sheepCounted++会把sheepCounted的值加上1,然后回到循环的起始位置,一遍又一遍:

《javascript-少儿编程》第六章条件与循环之while循环

《javascript-少儿编程》第六章条件与循环之while循环

  这会一直循环,直到sheepCounted变为10,此时条件变为假(10并不小于10),程序跳出了循环。这时,会打印出Zzzzzzzzzzz。

防止无限循环

  当使用循环时,要记住,如果设置的条件永远都不会为假,循环就会永不休止(或者直到退出浏览器)。例如,如果去掉“sheepCounted++;”,那么sheepCounted将保持为0,将会像下面这样输出:

《javascript-少儿编程》第六章条件与循环之while循环

  由于没有什么情况可以让它停止,程序将一直这样做下去!这就叫作无限循环(infinite loop)

作者:nick morgan 翻译:李强