未标记的break语句终止最内层的switch,for,while或do-while语句,而带标签的break则结束外部语句的执行。
让我们创建一个示例来演示:
int[][] table = { { 1, 2, 3 }, { 25, 37, 49 }, { 55, 68, 93 } };
boolean found = false;
int loopCycles = 0;
outer: for (int[] rows : table) {
for (int row : rows) {
loopCycles++;
if (row == 37) {
found = true;
break outer;
}
}
}
当找到数字37时,标记的break语句终止最外面的for循环,并且不再执行循环。因此,loopCycles以值5结束。
然而,未标记的break仅结束最里面的语句,控制流返回到最外对于该继续循环到下一行中的表的变量,使得loopCycles为8的值结束