break彻底跳出当前循环,continue跳过本次剩余代码进入下一次迭代;二者均只作用于最内层循环,跨层需用标签。

break 是彻底跳出当前循环,循环直接结束;continue 是跳过本次循环剩余代码,立即进入下一次迭代。
break:终止整个循环执行
一旦执行 break,循环体中其后的所有语句都不再运行,且循环条件不再判断,控制权交给循环之后的下一条语句。
常见于搜索匹配、异常退出或满足条件后无需继续遍历时:
- 在 for 循环中找到目标值后用 break 停止查找,避免多余遍历
- switch 语句中每个 case 后通常跟 break,防止穿透执行下一个 case
- while 循环中检测到错误状态可 break 中断,避免死循环
continue:跳过本轮,继续下一轮
continue 不会结束循环,只是忽略本次循环体中 continue 后面的代码,直接回到循环条件判断(for 还会先执行更新表达式)。
立即学习“Java免费学习笔记(深入)”;
适合过滤数据、跳过特定情况:
- 遍历数组时,遇到 null 或 undefined 用 continue 跳过处理逻辑
- for 循环中想只处理偶数索引,可用 if (i % 2 !== 0) continue
- 在 while 中,某些中间状态不满足处理条件时,用 continue 重新检查条件
嵌套循环中的行为差异
默认情况下,break 和 continue 都只作用于**最内层**的循环。若需跳出外层循环,需配合标签(label)使用:
- outer: for (let i = 0; i outer; } }
- 同理,continue outer 会跳到外层循环的下一次迭代
- 没有标签时,continue 只影响内层 for,不会跳过外层的 i++ 步骤
容易混淆的典型场景
在 for 循环中,continue 的位置会影响变量更新:
- for (let i = 0; i
- 而 while 中需手动控制变量,continue 后若不更新可能陷入死循环
- 不要在 if-else 外误写 continue,它只对所在循环有效,对条件语句本身无意义










