1. 概述
在编写循环语句时,我们常常需要在某些条件成立时跳出循环,这时就要用到break和continue关键字。两者都可以中断循环,但中断后的操作不同,影响的范围也不同。
break是用于完全跳出循环,即在循环中执行break后,整个循环就会终止,程序会直接跳出循环外执行后面的语句。而continue是用于跳过当前循环,即在循环中执行continue后,程序会跳过当前循环的本次迭代,直接进入下一个迭代。
2. break关键字
break关键字的使用十分灵活,可以用在任何循环语句中,如 while
循环、for
循环和 do while
循环,甚至还可以在嵌套的循环语句中跳出指定的循环。
2.1 跳出单层循环
下面是一个使用 while
循环实现求前 n
个自然数的和的例子。当求和结果超过 1000
时,使用 break 跳出循环:
var sum = 0;
var i = 1;
while (i) {
sum += i;
if (sum > 1000) {
break;
}
i++;
}
console.log(sum);
在上述代码中,如果 sum
的值超过了 1000
,就会执行 break 跳出循环,输出结果为 1035
。
2.2 跳出嵌套循环
如果有多层循环嵌套,我们可以在内层循环中使用 break 跳出指定的循环。例如,下面的代码是一个使用嵌套 for
循环输出乘法口诀表的例子,如果要仅输出小于等于 6
的部分,就可以在内层循环中使用 break 来跳出指定的循环:
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
if (i > 6) {
break;
}
document.write(j + "x" + i + "=" + i * j + " ");
}
document.write("
");
}
在上述代码中,i
循环从 1
到 9
,内层循环 j
从 1
到 i
,如果 i
大于 6
,就执行 break 跳出内层循环。
3. continue关键字
continue 关键字不会终止整个循环,而是中止当前循环的本次迭代,并直接开始下一次迭代。和 break 一样,continue 也可以用在任何循环语句中。
3.1 continue的基本用法
下面是一个使用 for
循环输出 1~10 中的奇数的例子,我们可以在每次迭代中判断当前数是否是偶数,并使用 continue 跳过本次迭代:
for (var i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
document.write(i + " ");
}
在上述代码中,如果 i
是偶数,就执行 continue 跳过本次迭代,输出的结果为 1 3 5 7 9
。
3.2 深层循环中的continue语句
如果有嵌套循环,continue 让你可以跳过当前迭代,而不是跳出整个循环。例如,下面是一个使用嵌套的 for
循环,输出行号和列号之和为奇数的格子:
for (var row = 0; row < 3; row++) {
for (var col = 0; col < 3; col++) {
if ((row + col) % 2 == 0) {
continue;
}
document.write("(" + row + "," + col + ") ");
}
document.write("
");
}
在上述代码中,如果 row
和 col
的和是偶数,就执行 continue 跳过本次迭代,输出的结果为:
(0,1) (0,2) (1,0) (1,2) (2,1) (2,2)
4. 总结
总的来说,break 和 continue 都是用于中断循环语句的关键字,但它们之间还是有着很大差别的。break 是用来直接跳出整个循环语句,而 continue 是仅中止当前循环迭代,继续执行下一次迭代。在实际编程中,我们要合理地使用这两个关键字,灵活掌握其用法,以提高程序效率。