当涉及到循环控制时,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
结合使用。