前言
在编程中,我们经常使用 for
循环来查找数据或进行批量操作。当找到目标数据后,为了优化性能,需要提前结束循环。以下是几种常用的跳出循环方法。
1. 跳过当前循环(continue)
使用 continue
跳过当前迭代,直接进入下一次循环。
for (let i = 0; i < 5; i++) {
if (i === 2) continue; // 跳过i=2的情况
console.log(i);
}
// 输出:
// 0
// 1
// 3
// 4
2. 跳出当前循环(break)
使用 break
完全终止当前循环。
for (let i = 0; i < 5; i++) {
if (i === 3) break; // 当i=3时终止循环
console.log(i);
}
// 输出:
// 0
// 1
// 2
3. 跳出多层循环
方法一:使用 label 语句
通过给循环添加标签,可以跳出指定的外层循环。
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, j);
}
}
// 输出:
// 0 0
// 0 1
// 0 2
// 1 0
方法二:使用函数 return
将循环放在函数中,通过 return
直接退出整个函数。
function findMatch() {
for (let i = 0; i < 4; i++) {
for (let j = 0; j < 4; j++) {
if (i + j === 3) {
console.log(`找到匹配: ${i}, ${j}`);
return; // 退出整个函数
}
console.log(`正在检查: ${i}, ${j}`);
}
}
}
findMatch();
// 输出:
// 正在检查: 0, 0
// 正在检查: 0, 1
// 正在检查: 0, 2
// 找到匹配: 0, 3
4. 跳出代码块(label + break)
标签也可以用于跳出任意代码块。
myBlock: {
console.log("第一行");
break myBlock;
console.log("这行不会执行");
}
console.log("块外代码");
// 输出:
// 第一行
// 块外代码
总结
方法 | 作用 | 适用场景 |
---|---|---|
continue | 跳过当前迭代 | 需要跳过某些特定情况时 |
break | 终止当前循环 | 找到目标后结束循环 |
label + break | 跳出指定循环或代码块 | 多层嵌套循环控制 |
return | 退出整个函数 | 循环在函数内部时 |
选择合适的方法可以提高代码效率和可读性。