36. Java 控制流语句 Break 语句
在 Java 中,break
语句用于立即跳出当前的循环或 switch
语句,并让程序控制流转移到循环或 switch
语句之后的第一条语句。它有两种形式:未标记的 break
和 带标签的 break
。🎯
1. 未标记的 break
未标记的 break
语句用于跳出当前的循环(例如:for
、while
或 do-while
)或 switch
语句。当 break
被执行时,程序会立刻跳出循环或 switch
,并继续执行循环或 switch
之后的代码。✅
示例:在 for
循环中使用 break
假设我们需要在一个数组中查找数字 12
,一旦找到,就停止循环,直接输出找到的位置。使用 break
可以实现这一点:
java
class BreakDemo {
public static void main(String[] args) {
int[] arrayOfInts = {32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127};
int searchfor = 12;
int i;
boolean foundIt = false;
for (i = 0; i < arrayOfInts.length; i++) {
if (arrayOfInts[i] == searchfor) {
foundIt = true;
break; // 终止循环
}
}
if (foundIt) {
System.out.println("Found " + searchfor + " at index " + i);
} else {
System.out.println(searchfor + " not in the array");
}
}
}
程序输出:
java
Found 12 at index 4
解释:
- 在这个例子中,我们通过
for
循环遍历数组,寻找数字12
。 - 一旦找到了,
break
语句就会终止循环,程序跳到后面的输出部分。 - 如果找到了目标数字,输出其位置;如果没找到,就输出提示信息。
2. 带标签的 break
(Labeled break
)
带标签的 break
语句用于跳出嵌套循环或多层 switch
语句。它允许你指定跳出外层循环,而不仅仅是当前的内层循环。🎯
定义标签 :标签必须放在循环或代码块的前面,以冒号 :
结尾。
示例:在嵌套的 for
循环中使用带标签的 break
假设我们有一个二维数组,需要查找数字 12
。我们使用带标签的 break
来跳出外层循环,避免不必要的迭代。
java
class BreakWithLabelDemo {
public static void main(String[] args) {
int[][] arrayOfInts = {
{32, 87, 3, 589},
{12, 1076, 2000, 8},
{622, 127, 77, 955}
};
int searchfor = 12;
int i;
int j = 0;
boolean foundIt = false;
search: // 标签声明
for (i = 0; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length; j++) {
if (arrayOfInts[i][j] == searchfor) {
foundIt = true;
break search; // 使用带标签的 break,跳出外层循环
}
}
}
if (foundIt) {
System.out.println("Found " + searchfor + " at " + i + ", " + j);
} else {
System.out.println(searchfor + " not in the array");
}
}
}
程序输出:
java
Found 12 at 1, 0
解释:
- 我们在一个二维数组中查找数字
12
。 break search
语句会跳出标记为search
的外层循环。如果12
被找到,程序会立即退出并输出找到的位置。- 这种方式可以有效减少嵌套循环的复杂度,提升代码效率。
📝 总结
- 未标记的
break
:用于跳出当前的循环(如for
、while
或do-while
)或switch
语句,一旦执行,程序就会跳到后面的代码。 - 带标签的
break
:用于跳出嵌套循环或多层switch
语句,能够跳出指定标签所标记的外层循环,避免不必要的迭代。
带标签的 break
特别适用于复杂的嵌套结构,可以让你灵活地控制程序的执行流。但需要注意的是,过度使用标签可能会让代码难以阅读,因此需要确保标签命名清晰、具备语义,避免降低代码的可读性和可维护性。💡