1. break
语句
作用 :立即终止当前所在的整个循环(for/while/do-while/for...in/for...of),跳转到循环后的代码执行。
示例:
javascript
ini
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 当 i=5 时,直接退出整个循环
}
console.log(i); // 输出:0, 1, 2, 3, 4
}
2. continue
语句
作用 :跳过当前循环的剩余代码,直接进入下一次循环迭代。
示例:
javascript
css
for (let i = 0; i < 5; i++) {
if (i === 3) {
continue; // 当 i=3 时,跳过本次循环,继续执行 i=4
}
console.log(i); // 输出:0, 1, 2, 4
}
3. return
语句(函数内部)
作用 :终止包含循环的整个函数,并返回指定值(或 undefined
)。
示例:
javascript
javascript
function findNumber(arr) {
for (const num of arr) {
if (num === 5) {
return num; // 找到 5 后立即退出函数
}
}
return -1;
}
console.log(findNumber([1, 3, 5, 7])); // 输出:5
4. 标签语句(Labeled Break/Continue)
作用 :跳出多层嵌套循环(break
)或跳过多层循环的当前迭代(continue
)。
示例:
javascript
ini
outerLoop:
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outerLoop; // 直接跳出外层循环
}
console.log(`i=${i}, j=${j}`);
}
}
// 输出:i=0, j=0 → i=0, j=1 → i=0, j=2 → i=1, j=0
5. 异常抛出(throw
+ try...catch
)
作用 :通过抛出异常强制终止循环,但需配合 try...catch
捕获。
示例:
javascript
javascript
try {
const arr = [1, 2, 3, 4, 5];
for (const num of arr) {
if (num === 4) {
throw new Error('终止循环');
}
console.log(num); // 输出:1, 2, 3
}
} catch (e) {
console.log(e.message); // 输出:终止循环
}
6. 条件控制(while/do-while 专用)
作用 :通过修改循环条件变量,让循环自然结束。
示例:
javascript
ini
let i = 0;
while (i < 10) {
if (i === 5) {
i = 10; // 修改条件变量,退出循环
}
console.log(i); // 输出:0, 1, 2, 3, 4
i++;
}
适用场景对比
方法 | 适用场景 | 注意事项 |
---|---|---|
break |
提前终止整个循环 | 仅跳出当前层循环(除非带标签) |
continue |
跳过当前迭代,继续下一次迭代 | 不终止循环 |
return |
在函数内终止循环并返回结果 | 必须在函数内部使用 |
标签语句 | 跳出多层嵌套循环 | 可读性较差,谨慎使用 |
throw |
极端情况(如需要跨函数终止循环) | 需配合 try...catch |
条件控制 | 简单循环(如 while 循环) | 需确保条件变量被正确修改 |
示例对比
javascript
ini
// break vs continue
for (let i = 0; i < 3; i++) {
if (i === 1) break; // 输出:0
// if (i === 1) continue; // 输出:0, 2
console.log(i);
}
// return vs break
function test() {
for (let i = 0; i < 3; i++) {
if (i === 1) return; // 函数直接返回,无输出
// if (i === 1) break; // 跳出循环,输出:0
console.log(i);
}
console.log('循环后'); // return 时不执行,break 时执行
}
test();
总结
- 优先使用
break
和continue
:简单直接,适合大多数场景。 - 函数内使用
return
:干净利落地终止循环并返回结果。 - 标签语句和
throw
:仅在必要时使用(如多层嵌套循环),避免降低代码可读性。 - 条件控制 :适用于
while
/do-while
循环,但需注意变量更新逻辑。