当涉及到循环控制时,JavaScript 中的 continue 和 break 关键字的区别如下:
-
continue关键字:- 在循环中遇到
continue语句时,会立即跳过当前迭代的剩余代码,继续执行下一次迭代。 continue只会影响当前循环,不会终止或跳出循环,循环会继续执行后续的迭代。
示例:
for (let i = 0; i < 5; i++) { if (i === 2) { continue; } console.log(i); } // 0 1 3 4在上述示例中,当
i等于 2 时,continue跳过当前迭代,不执行console.log(i),继续执行下一次迭代。 - 在循环中遇到
-
break关键字:- 在循环中遇到
break语句时,会立即终止循环的执行,跳出循环体,不再执行后续的迭代。 break会完全终止循环,不再考虑后续的循环条件,循环外的代码将继续执行。
示例:
for (let i = 0; i < 5; i++) { if (i === 2) { break; } console.log(i); } // 0 1在上述示例中,当
i等于 2 时,break终止循环的执行,不再执行后续的迭代。 - 在循环中遇到
总结:
continue跳过当前迭代,继续执行下一次迭代,不终止循环。break立即终止循环的执行,跳出循环体,终止循环的继续执行。
当涉及到循环嵌套时,continue 和 break 的行为也有一些区别:
-
continue:- 在嵌套循环中,
continue语句只会跳过当前内层循环的剩余代码,并进入下一次内层循环的迭代,不会影响外层循环。
示例:
for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { if (j === 1) { continue; } console.log(`i: ${i}, j: ${j}`); } } // i: 0, j: 0 // i: 0, j: 2 // i: 1, j: 0 // i: 1, j: 2 // i: 2, j: 0 // i: 2, j: 2 - 在嵌套循环中,
-
break:- 在嵌套循环中,
break语句会完全终止当前内层循环的执行,并跳出内层循环,继续执行外层循环的下一次迭代。
示例:
for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { if (j === 1) { break; } console.log(`i: ${i}, j: ${j}`); } } // i: 0, j: 0 // i: 1, j: 0 // i: 2, j: 0 - 在嵌套循环中,
需要注意的是,continue 和 break 关键字只会影响当前所在的最内层循环。如果在嵌套循环中想要跳出外层循环,可以使用标签来标识外层循环,并结合 break 语句使用。
示例:
outerLoop: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (j === 1) {
break outerLoop;
}
console.log(`i: ${i}, j: ${j}`);
}
}
// i: 0, j: 0
在这个示例中,使用了 outerLoop 标签来标识外层循环,并在 break 语句中使用标签,从而在满足条件时跳出外层循环的执行。
总结:
continue用于跳过当前内层循环的剩余代码,并进入下一次内层循环的迭代。break用于完全终止当前内层循环的执行,并跳出内层循环,继续执行外层循环的下一次迭代。- 若要跳出外层循环,可以使用标签和
break结合使用。