掌握 Java 中三种跳转语句(break、continue、return)的用法
理解它们如何改变程序的正常执行流程
学会使用带标签的 break 实现类似 goto 的结构化跳转
避免“不可达代码”等常见编译错误
在循环、方法和条件控制中合理运用跳转语句
在 Java 中,跳转语句(Jump Statements) 用于在特定条件下主动中断或转移程序的执行流程。它们不是无序的“跳来跳去”,而是在结构化编程框架内提供更灵活的控制能力。Java 提供三种跳转语句:
跳过当前迭代,详情请参考《Java 中的 continue 语句》
continue 用于跳过本次循环中剩余的代码,直接进入下一次循环的条件判断。

class Main {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
if (i == 2) {
System.out.println(); // 打印空行便于观察
continue; // 跳过本次循环
}
System.out.println(i);
}
}
}输出结果:
0
1
3
4✅ 关键点:
当 i == 2 时,continue 触发,System.out.println(i) 被跳过
循环继续执行 i++,然后判断 i < 5,进入下一轮
💡 应用场景:过滤无效数据、跳过特殊索引、避免嵌套过深的
if
立即终止循环或 switch,详情请参考《Java 中的 break 语句》
break 用于完全退出当前所在的循环(for/while/do-while)或 switch 语句。

class Main {
public static void main(String[] args) {
int n = 10;
for (int i = 0; i < n; i++) {
if (i == 4)
break; // 终止循环
System.out.println(i);
}
}
}输出:
0
1
2
3✅ 说明:当 i == 4 时,break 执行,循环立即结束,不再打印 4 及之后的数字。
虽然 Java 没有 goto 语句(因其导致代码难以维护),但提供了带标签的 break,可在多层嵌套中跳出指定代码块。
class Main {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
one: {
two: {
three: {
System.out.println("i=" + i);
if (i == 0) break one;
if (i == 1) break two;
if (i == 2) break three;
}
System.out.println("after label three");
}
System.out.println("after label two");
}
System.out.println("after label one");
}
}
}输出:
i=0
after label one
i=1
after label two
after label one
i=2
after label three
after label two
after label one✅ 解析:
break one; → 直接跳出到 one 标签外,跳过 two 和 three 的后续语句
标签语法:labelName: statementOrBlock
⚠️ 注意:标签必须放在语句或代码块前,且
break label;只能跳出外层结构,不能向前跳。
从方法返回,详情请参考《Java 中的 return 关键字》
return 用于结束当前方法的执行,并将控制权交还给调用者。若方法有返回类型,return 必须提供对应值。
class ReturnExample {
public static int calculateSum(int num1, int num2) {
System.out.println("Calculating the sum of " + num1 + " and " + num2);
int sum = num1 + num2;
System.out.println("The sum is: " + sum);
return sum; // 返回结果并退出方法
// System.out.println("end"); // 编译错误:unreachable statement
}
public static void main(String[] args) {
int result = calculateSum(5, 10);
System.out.println("Result: " + result);
}
}输出:
Calculating the sum of 5 and 10
The sum is: 15
Result: 15✅ 例外:在
try-catch-finally中,finally块总会执行,即使前面有return
return 后写代码public int getValue() {
return 42;
System.out.println("Never executed"); // Unreachable code
}break 导致 switch 穿透switch (day) {
case 1:
System.out.println("Monday");
// 忘记 break → 会继续执行 case 2!
case 2:
System.out.println("Tuesday");
break;
}优先使用 continue 替代深层嵌套的 if
在多重循环中谨慎使用带标签的 break,确保逻辑清晰
return 尽早返回(Guard Clause 模式)可提高可读性:
public void process(String input) {
if (input == null || input.isEmpty()) {
return; // 提前退出,避免后续复杂判断
}
// 正常处理逻辑...
}在一个嵌套 for 循环中,如何使用带标签的 break 直接跳出最外层循环?
能否在 while 循环中同时使用 break 和 continue?请设计一个示例(如:跳过偶数,遇到 10 则终止)。
为什么 Java 不支持 goto,却允许带标签的 break?这体现了怎样的设计哲学?