循环语句可以让一段代码执行一定的次数。
Example 2.18. 循环语句
// logs 'try 0', 'try 1', ..., 'try 4' for (var i=0; i<5; i++) { console.log('try ' + i); }
在 Example 2.18, “循环语句”,即使我们在变量名 i
前使用关键字var,这也并不意味着 i
变量的作用域在
循环体内。我们将在后面的章节讨论变量的作用域。
for
循环由以下几个部分构成
for ([initialisation初始化]; [conditional条件判断]; [iteration迭代]) [loopBody循环体]
初始化部分在循环开始前执行一次。可以在此声明循 欢中需要用到的变量
条件判断部分在每次循环前执行,它的返回值决定了 循环是否继续。如果返回值为false,那么循环将被终止
迭代部分该部分在每次循环结束时执行,你可以借此改变重要变 量的状态和值。通常在这里进行自加和自减运算,让循环更接近终止。
循环体 每次循环时执行,你可以在( {...}
)中放入你想运行的代码。
这是一个典型的 for
循环:
Example 2.19. 典型的for
循环
for (var i = 0, limit = 100; i < limit; i++) { // 代码将要执行100次。 console.log('Currently at ' + i); // 最后输出的i值为99。 }
while
循环和if
语句类似,除了它的函数体
会一直循环执行,直到条件部分返回false。
while ([条件判断]) [循环体]
这里是一个典型的 while
循环:
Example 2.20. 典型的 while
循环
var i = 0; while (i < 100) { // 代码会被执行100次。 console.log('Currently at ' + i); i++; // i的自加。 }
你会看到我们在循环体内进行计数器i的自加运算。事实上我们也可以在条件判断部分进行自加运算,比如:
Example 2.21. while
循环,在条件判断部分对计数器i进行自加
var i = -1; while (++i < 100) { // 这里的代码会被执行100次 console.log('Currently at ' + i); }
注意我们是从-1
开始并且把自加运算符放在变量前(++i
).
该循环和while循环类似,循环体在条件判断之前执行。
do [循环体] while ([条件判断])
这是一个 do-while
循环:
Example 2.22. 一个 do-while
循环
do { // 即使条件判断返回值为false,循环体还是被执行了一次。 alert('Hi there!'); } while (false);
这些循环类型很少用,仅仅在至少执行一次的情况下才需要这种循环。无论如何,意识到这一点就很好。
Copyright Rebecca Murphey, released under the Creative Commons Attribution-Share Alike 3.0 United States license.