break 和 continue 语句为执行循环代码提供了更严格的控制手段。其中,break 语句用于立即退 出循环,强制执行循环后的下一条语句。而 continue 语句也用于立即退出循环,但会再次从循环顶部 开始执行。
下面看一个例子:
let num = 0;
for (let i = 1; i < 10; i++) {
if (i % 5 == 0) {
break;
}
num++
}
console.log(num); // 4
在上面的代码中,for 循环会将变量 i 由 1 递增到 10。而在循环体内,有一个 if 语句用于检查 i 能否被 5 整除(使用取模操作符)。如果是,则执行 break 语句,退出循环。变量 num 的初始值为 0, 表示循环在退出前执行了多少次。当 break 语句执行后,下一行执行的代码是 console.log(num), 显示 4。之所以循环执行了 4 次,是因为当 i 等于 5 时,break 语句会导致循环退出,该次循环不会执 行递增 num 的代码。如果将 break 换成 continue,则会出现不同的效果:
let num = 0;
for (let i = 1; i < 10; i++) {
if (i % 5 == 0) {
continue;
}
num++;
} console.log(num); // 8
这一次,console.log 显示 8,即循环被完整执行了 8 次。当 i 等于 5 时,循环会在递增 num 之 前退出,但会执行下一次迭代,此时 i 是 6。然后,循环会一直执行到自然结束,即 i 等于 10。最终 num 的值是 8 而不是 9,是因为 continue 语句导致它少递增了一次。