break立即终止整个循环,continue跳过本次迭代;前者退出最内层循环并执行后续语句,后者跳过当前循环体剩余部分直接进入下一次迭代。

在Java中,break 和 continue 是两个用于控制循环执行流程的关键字,它们不改变循环条件本身,而是直接干预当前循环的执行路径。正确理解它们的区别和适用场景,能显著提升代码可读性和逻辑准确性。
break:立即终止整个循环
当程序执行到 break 语句时,会立刻退出当前所在的最内层循环(for、while 或 do-while),并继续执行该循环之后的下一条语句。
- 只能用在循环或 switch 语句中,单独写在普通代码块中会编译报错
- 支持带标签的 break,可用于跳出多层嵌套循环
- 常见用途:查找满足条件的元素后提前结束遍历
例如:
for (int i = 0; i if (i == 5) break;System.out.print(i + " ");
}
// 输出:0 1 2 3 4
continue:跳过本次循环剩余部分,进入下一次迭代
continue 不会终止整个循环,而是跳过当前循环体中尚未执行的语句,直接进入下一次循环判断(即执行 for 的增量表达式,或重新判断 while 条件)。
立即学习“Java免费学习笔记(深入)”;
- 同样仅适用于循环结构中
- 也支持带标签的 continue,用于指定跳转到哪一层循环的下一次迭代
- 常用于过滤数据、跳过无效或特殊处理项
例如:
for (int i = 0; i if (i % 2 == 0) continue;System.out.print(i + " ");
}
// 输出:1 3 5
带标签的 break 和 continue:精准控制嵌套循环
当存在多层循环时,普通 break/continue 只影响最内层。通过添加标签(label),可以明确指定作用目标。
- 标签名后跟冒号,放在循环语句前(如 outer: for (...) {...})
- break outer 表示跳出标记为 outer 的那层循环
- continue outer 表示跳过 outer 循环本轮,直接进入下一轮 outer 迭代
例如:
outer: for (int i = 0; i for (int j = 0; j if (i == 1 && j == 1) break outer;System.out.println(i + "," + j);
}
}
// 输出到 (1,0) 就停止整个外层循环
使用注意事项与常见误区
这两个关键字虽小,但误用容易引发逻辑错误或降低可维护性。
- 避免在复杂循环中频繁使用 break/continue,尤其当它们分散在多处时,建议优先考虑重构为方法或使用布尔标志变量
- 不要混淆 continue 和 break:continue 后仍可能再次进入循环;break 则彻底退出
- switch 中的 break 是防止 case 穿透,与循环无关,但语法相同,需注意上下文
- 在 try-catch-finally 中使用 break/continue 时,finally 块仍会执行(除非 JVM 强制退出)










