核心概念
break 是一个关键字,它的作用是立即终止并退出当前所在的循环,当程序执行到 break 语句时,循环会立刻停止,不再执行后续的循环体代码,也不会再进行循环条件的判断,程序会继续执行循环体之后的下一条语句。

在基本的 for 循环中使用 break
这是最常见和最直接的使用场景,通常我们会结合 if 条件来判断,在满足某个特定条件时退出循环。
示例:查找数组中第一个大于 10 的数字
public class BreakExample {
public static void main(String[] args) {
int[] numbers = {5, 8, 12, 3, 15, 9};
int target = 10;
System.out.println("开始查找第一个大于 " + target + " 的数字...");
for (int i = 0; i < numbers.length; i++) {
System.out.println("正在检查数字: " + numbers[i]);
// 如果当前数字大于目标值,就使用 break 退出循环
if (numbers[i] > target) {
System.out.println("找到了!数字是: " + numbers[i]);
break; // 这行代码会立即终止 for 循环
}
}
System.out.println("循环已结束。");
}
}
输出结果:
开始查找第一个大于 10 的数字...
正在检查数字: 5
正在检查数字: 8
正在检查数字: 12
找到了!数字是: 12
循环已结束。
代码分析:

for循环开始,i从 0 开始。- 检查
numbers[0](值为 5),不大于 10,循环继续。 - 检查
numbers[1](值为 8),不大于 10,循环继续。 - 检查
numbers[2](值为 12),大于 10。if条件成立,执行break。 break语句被执行,for循环立即终止。- 程序跳过
for循环中剩余的所有迭代(检查 3, 15, 9),直接执行System.out.println("循环已结束。");。
break 在嵌套循环中的行为
当 break 出现在嵌套循环(一个循环在另一个循环内部)中时,它只会跳出离它最近的那一层循环。
示例:break 只跳出内层循环
public class NestedBreakExample {
public static void main(String[] args) {
outerLoop: // 这是外层循环的标签,我们稍后会用到
for (int i = 1; i <= 3; i++) {
System.out.println("外层循环 - i = " + i);
for (int j = 1; j <= 3; j++) {
System.out.println(" 内层循环 - j = " + j);
if (j == 2) {
System.out.println(" j 等于 2,使用 break 退出内层循环。");
break; // 这个 break 只会退出内层 for 循环
}
}
System.out.println(" 继续执行外层循环的下一次迭代。");
}
System.out.println("所有循环结束。");
}
}
输出结果:
外层循环 - i = 1
内层循环 - j = 1
j 等于 2,使用 break 退出内层循环。
继续执行外层循环的下一次迭代。
外层循环 - i = 2
内层循环 - j = 1
j 等于 2,使用 break 退出内层循环。
继续执行外层循环的下一次迭代。
外层循环 - i = 3
内层循环 - j = 1
j 等于 2,使用 break 退出内层循环。
继续执行外层循环的下一次迭代。
所有循环结束。
代码分析:

break语句位于内层for循环中。- 每当内层循环的
j变为 2 时,break就会执行,只终止内层循环。 - 外层循环不受影响,会继续执行它的下一次迭代(
i继续增加)。
使用标签(Label)跳出多层循环
如果你想在嵌套循环中直接跳出外层循环,可以使用 break 加上循环标签。
语法:
labelName: for (...) { ... break labelName; ... }
示例:使用标签 outerLoop 跳出外层循环
public class LabeledBreakExample {
public static void main(String[] args) {
outerLoop: // 定义外层循环的标签
for (int i = 1; i <= 3; i++) {
System.out.println("外层循环 - i = " + i);
for (int j = 1; j <= 3; j++) {
System.out.println(" 内层循环 - j = " + j);
if (j == 2) {
System.out.println(" j 等于 2,使用带标签的 break 退出外层循环。");
break outerLoop; // 指定要跳出的是名为 outerLoop 的循环
}
}
// 这一行代码将不会被执行,因为外层循环已经被 break 跳出
System.out.println(" 这行代码不会显示。");
}
System.out.println("所有循环结束。");
}
}
输出结果:
外层循环 - i = 1
内层循环 - j = 1
j 等于 2,使用带标签的 break 退出外层循环。
所有循环结束。
代码分析:
- 我们给外层
for循环起了一个名字outerLoop。 - 在内层循环中,
break outerLoop;告诉 Java:“不要只跳出内层循环,而是直接跳出标签为outerLoop的那个循环”。 - 当
j变为 2 时,整个outerLoop循环都被终止了,程序直接跳到了System.out.println("所有循环结束。");。
break 与 continue 的区别
这是一个非常重要的概念,初学者很容易混淆。
| 特性 | break |
continue |
|---|---|---|
| 作用 | 完全终止并退出整个循环。 | 跳过当前这次循环的剩余部分,直接进入下一次循环的判断。 |
| 循环次数 | 减少循环的总次数,提前结束循环。 | 不减少循环的总次数,只是跳过某一次。 |
| 执行位置 | 执行 break 后,循环体之后的代码会立即执行。 |
执行 continue 后,循环体中 continue 之后的代码不会执行,会直接跳转到循环条件判断处。 |
continue 示例:
public class ContinueExample {
public static void main(String[] args) {
System.out.println("跳过偶数,只打印奇数:");
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) {
continue; // i 是偶数,就跳过本次循环的剩余部分(即下面的打印语句)
}
System.out.println("当前数字是: " + i);
}
}
}
输出结果:
跳过偶数,只打印奇数:
当前数字是: 1
当前数字是: 3
当前数字是: 5
break: 用于完全退出一个循环,在简单循环中,它用于在找到目标或满足条件时提前终止,在嵌套循环中,默认只跳出最内层。- 带标签的
break: 用于跳出指定的外层循环,提供了更强的控制能力。 continue: 用于跳过当前循环的剩余部分,继续下一次循环。break与return的区别:break只能跳出循环或switch语句,而return会直接结束整个方法的执行,并返回一个值(如果方法有返回值)。
