break用于立即终止当前循环或switch,执行后续语句;continue跳过本次循环剩余代码,直接进入下一次循环判断。两者均须位于循环或switch内部,支持标签实现多层跳转,但过度使用可能影响可读性。

break 用来立即终止当前所在的循环(或 switch),执行循环之后的下一条语句;continue 则跳过本次循环剩余代码,直接进入下一次循环判断。
break:彻底跳出当前循环
遇到 break 时,不管循环条件是否还成立,都会立刻退出该层循环,程序继续执行循环体外的第一条语句。它常用于满足某个条件后提前结束搜索、避免冗余计算等场景。
- 在 for、while、do-while 中,break 仅影响**最近一层**的循环
- 配合标签(label)可跳出多层嵌套循环,例如:outer: for(...) { for(...) { break outer; } }
- 在 switch 中,break 防止 case 穿透(fall-through),是标准写法
continue:跳过本次迭代,继续下一轮
continue 不会退出循环,而是中止当前这一次循环体的执行,直接跳转到循环条件判断处,决定是否开始下一次迭代。它适合过滤掉不满足条件的元素,但还想继续处理后续项的情况。
- 只对 for、while、do-while 有效,switch 中不能用 continue
- 在 for 循环中,continue 执行后会先运行“更新表达式”(如 i++),再判断条件
- 同样支持带标签的 continue,用于跳过指定外层循环的当前迭代
一个对比小例子
假设遍历数组 [1, 2, 3, 4, 5]:
立即学习“Java免费学习笔记(深入)”;
- 用 break 在遇到 3 时退出:只输出 1、2
- 用 continue 在遇到 3 时跳过:输出 1、2、4、5(3 被跳过,循环继续)
使用时要注意的细节
- 不要在 if 外单独写 break 或 continue,它们必须出现在循环或 switch 内部
- 嵌套循环中不加标签时,break/continue 只作用于最内层,容易误判逻辑
- 过度依赖 break 和 continue 可能降低代码可读性,必要时可考虑重构为方法 + return










