1️⃣ 使用标签(Label)+ break
Java 允许在循环前加一个标签,然后在 break 或 continue 时指定跳转的循环。
示例:直接跳出到指定外层 for 循环
public class BreakLabelDemo {
public static void main(String[] args) {
outer: // 外层循环标签
for (int i = 0; i < 3; i++) {
System.out.println("外层 i = " + i);
for (int j = 0; j < 3; j++) {
System.out.println(" 内层 j = " + j);
if (j == 1) {
System.out.println(" 跳出到 outer 外层循环");
break outer; // 直接结束 outer 循环
}
}
}
System.out.println("循环结束");
}
}
运行结果:
外层 i = 0
内层 j = 0
内层 j = 1
跳出到 outer 外层循环
循环结束
✅ 特点:
-
适合多层嵌套循环时快速退出到指定层。
-
标签名必须是合法的标识符,并紧跟
:。
2️⃣ 使用标签(Label)+ continue
如果要直接跳到某个外层循环的下一轮,可以用 continue 标签。
示例:跳到外层 for 的下一次迭代
public class ContinueLabelDemo {
public static void main(String[] args) {
outer:
for (int i = 0; i < 3; i++) {
System.out.println("外层 i = " + i);
for (int j = 0; j < 3; j++) {
if (j == 1) {
System.out.println(" 跳到 outer 外层下一轮");
continue outer; // 直接进入 outer 的下一次循环
}
System.out.println(" 内层 j = " + j);
}
}
System.out.println("循环结束");
}
}
3️⃣ 直接退出整个方法(return)
如果循环在方法中,可以用 return 直接退出方法,相当于退出所有循环。
public class ReturnDemo {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
System.out.println("退出方法");
return; // 直接结束 main 方法
}
System.out.println("i=" + i + ", j=" + j);
}
}
System.out.println("这句永远不会执行到");
}
}
4️⃣ 使用标志变量(flag)控制
有时候不想用标签,可以用布尔变量来控制循环退出:
public class FlagDemo {
public static void main(String[] args) {
boolean stop = false;
for (int i = 0; i < 3 && !stop; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
stop = true; // 标记退出
break;
}
System.out.println("i=" + i + ", j=" + j);
}
}
System.out.println("循环结束");
}
}
总结对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| Label + break | 简单直接,支持跳到指定外层 | 标签滥用会降低代码可读性 | 多层循环快速退出 |
| Label + continue | 控制到外层下一轮 | 可读性差于普通 continue | 跳到外层循环继续执行 |
| return | 最直接,代码简洁 | 会直接结束整个方法 | 不需要后续逻辑时 |
| flag 标志 | 不依赖标签,可读性高 | 代码稍繁琐 | 逻辑复杂,需要可读性 |

868

被折叠的 条评论
为什么被折叠?



