break用于彻底跳出当前循环,单层直接退出,嵌套时默认仅跳出内层,可加标签跳出指定外层;continue跳过本次循环剩余语句,直接进入下一次迭代。

Java 中循环的中断与继续主要靠 break 和 continue 两个关键字实现,它们作用不同、适用场景明确,用错容易引发逻辑错误。
break:彻底跳出当前循环
遇到 break,循环立即终止,程序跳转到循环体之后的第一条语句执行。它可用于 for、while、do-while,也常配合 switch 使用。
- 单层循环中,break 直接退出该循环
- 嵌套循环中,默认只跳出最内层循环;如需跳出外层,可使用带标签的 break
示例(带标签 break):
outer: for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) break outer;
System.out.print(i + "," + j + " ");
}
}
输出:0,0 0,1 0,2 1,0 —— 遇到 i==1 && j==1 时直接跳出整个外层循环。
立即学习“Java免费学习笔记(深入)”;
continue:跳过本次循环剩余部分,进入下一次迭代
continue 不终止整个循环,而是结束当前这一次循环体的执行,直接判断循环条件,决定是否开始下一轮。
- 在
for循环中,执行 continue 后会先运行「迭代语句」(如i++),再判断条件 - 在
while或do-while中,continue 直接跳回条件判断处
示例(过滤偶数):
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) continue;
System.out.println(i); // 只打印奇数:1、3、5
}
break 与 continue 的常见误用提醒
二者不能用在循环或 switch 之外的普通代码块中,否则编译报错。
- 不要把 continue 误当 break 用——比如想退出整个循环却写了 continue,会导致无限循环
- 嵌套循环中慎用无标签的 break/continue,容易混淆作用范围
- 在 while(true) 里依赖 break 跳出时,确保 break 条件一定能被满足,避免死循环
替代方案:用布尔标志控制循环流程
当逻辑较复杂、break/continue 不够清晰时,可用布尔变量提升可读性:
boolean found = false;
for (int i = 0; i < arr.length && !found; i++) {
if (arr[i] == target) {
System.out.println("Found at " + i);
found = true; // 控制循环自然结束
}
}
这种方式更易调试、便于扩展条件,适合多人协作或后续维护。


















