七、循环

循环语句用于多次执行一个代码块。JavaScript 有四种循环:whiledo-whileforfor-in。与条件if语句一样,如果代码块中只有一条语句,可以省略这些循环的花括号。

While 循环

只有当条件为真时,while循环才会遍历代码块,并且只要条件保持为真,循环就会继续。

var i = 0;

while (i < 10) {

document.write(i++); // 0-9

}

这里的循环将打印出数字 0 到 9。请记住,条件只在每次迭代开始时检查。

Do-While 循环

除了检查代码块之后的条件之外,do-while循环的工作方式与while循环相同。因此,它将始终至少在代码块中运行一次。注意,这个循环以分号结束。

var j = 0;

do {

document.write(j++); // 0-9

} while (j < 10);

For 循环

for循环在代码块中运行特定的次数。它使用三个参数。第一个初始化一个计数器,并且总是在循环之前执行一次。第二个参数保存循环的条件,并在每次迭代之前进行检查。第三个参数包含计数器的增量,在每次迭代结束时执行。

for (var k = 0; k < 10; k++) {

document.write(k); // 0-9

}

这个循环有几种变化,因为任何一个参数都可以省略。例如,如果省略第一个和第三个参数,它的行为方式与while循环相同。

var k;

for (; k < 10;) {

document.write(k++); // 0-9

}

第一个和第三个参数也可以使用逗号运算符(,)拆分成几个语句。

for (var k = 0, m = 0; k < 10; k++, m--) {

document.write(k+m); // 000... (10x)

}

属性获取数组中元素的数量。与for循环一起,它可以用来遍历一个数组。

var a = [1, 2, 3];

for (var i = 0; i < a.length; i++) {

document.write(a[i]); // "123"

}

如果不需要跟踪迭代,for-in循环提供了一个更短的遍历数组的语法。

For-in 循环

for-in循环提供了一种简单的方法来遍历数组中的元素或对象中的属性。在每次迭代中,将下一个属性的键或索引赋给变量,循环继续迭代,直到遍历完对象的所有成员。

var colors = ["red","green","blue"];

for (i in colors) {

document.write(colors[i] + " "); // "red green blue"

}

中断并继续

有两个跳转语句可以在循环内部使用:breakcontinuebreak关键字结束循环结构,而continue跳过当前迭代的剩余部分,并在下一次迭代的开始处继续。

for (var i = 0; i < 10; i++)

{

if (i == 2) continue;   // start next iteration

else if (i == 5) break; // end loop

document.write(i);      // "0134"

}

要中断当前循环之上的循环,必须首先标记外部循环,方法是在外部循环前添加一个名称,后跟一个冒号。有了这个标签,它现在可以用作break语句的参数,告诉它从哪个循环中退出。这也适用于continue关键字,以便跳到指定循环的下一次迭代。

myloop:

for (var i = 0; i < 10; i++)

{

var j = 0;

while (++j < 10)

{

break myloop; // end for loop

}

}