✅ 情况一:直接跳出所有循环
用 break
+ label 标签 可以从任意嵌套层级跳出到指定的外部循环,或者完全跳出所有循环。
📌 一、使用 break
+ label 跳出指定循环
outerLoop: // 给外层 for 循环起个标签
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
if (i === 2 && j === 3) {
break outerLoop; // 跳出外层循环
}
console.log(`i=${i}, j=${j}`);
}
}
console.log("跳出 outerLoop");
✅ 输出说明:
-
当
i=2, j=3
时直接跳出outerLoop
-
后续
i=3, 4
都不会再执行
📌 二、只跳出当前内层循环:直接使用 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}`);
}
}
✅ 说明:每次 j==1
时跳出内层,但 i
会继续。
📌 三、跳出所有循环的另一种方式(使用函数 + return)
如果你在一个函数中,可以使用 return
直接退出整个逻辑:
function process() {
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
if (i === 1 && j === 2) {
return; // 退出整个函数(类似跳出所有循环)
}
console.log(`i=${i}, j=${j}`);
}
}
console.log("不会执行到这里");
}
process();
📌 四、跳出到任意层嵌套:使用多个 label(不推荐但可以)
outermost: for (let i = 0; i < 3; i++) {
inner: for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outermost; // 直接跳出最外层循环
}
console.log(`i=${i}, j=${j}`);
}
}
🧠 总结
场景 | 用法 |
---|---|
跳出当前循环 | break |
跳出指定外层循环 | break outerLoop |
跳出所有循环(在函数中) | return |
跳过当前某次循环 | continue |
跳过指定循环的某次 | continue label |