java 中已知的三種跳出多重循環的方式:
System.out.println("---------java中跳出多重循環的三種方式:---------");
System.out.println("---------第一種,使用帶有標號的的break語句---------");
String a1 = "";
String b1 = "";
here:
for (int i = 1; i <= 4; i++) {
a1 = "外層循環第"+i+"層";
for (int j = 1; j <= 4; j++) {
b1 = "內層循環第"+j+"層";
if (2 == j & 2 == i) {
break here;
}
}
}
System.out.println(a1+b1);
System.out.println("---------第二種,外層的循環條件收到內層的代碼控制限制---------");
String a2 = "";
String b2 = "";
Boolean state = true;
for (int i = 1; i <= 4 && state; i++) {
a2 = "外層循環第"+i+"層";
for (int j = 1; j <= 4 && state; j++) {
b2 = "內層循環第"+j+"層";
if (2 == j & 2 == i) {
state = false;
}
}
}
System.out.println(a2+b2);
System.out.println("---------第三種,使用try/catch強制跳出循環---------");
String a3 = "";
String b3 = "";
try {
for (int i = 1; i <= 3; i++) {
a3 = "外層循環第"+i+"層";
for (int j = 1; j <= 3; j++) {
b3 = "內層循環第"+j+"層";
if (2 == j & 2 == i) {
throw new Exception();
}
}
}
} catch (Exception e) {
System.out.println(a3+b3);
}
System.out.println("---------java中跳出多重循環的兩種方式---------");
最後輸出結果如下:
總結: 其實在工作中用到的最多的也最可行的是使用第一種方式:在java中,break作爲”goto“使用,說明:break語句除了在switch語句和循環中使用之外,它還能作爲goto 語句的一種“文明”形式來使用。Java 中沒有 goto 語句,因爲goto 語句提供了一種改變程序運行流程的非結構化方式。這通常使程序難以理解和難於維護。它也阻止了某些編譯器的優化。但是,有些地方goto 語句對於構造流程控制是有用的而且是合法的。例如,從嵌套很深的循環中退出時, goto 語句就很有幫助。因此,Java 定義了break 語句的一種擴展形式來處理這種情況。通過使用這種形式的break,你可以終止一個或者幾個代碼塊。這些代碼塊不必是一個循環或一個switch語句的一部分,它們可以是任何的塊。而且,由於這種形式的break 語句帶有標籤,你可以明確指定執行從何處重新開始。你將看到,break帶給你的是goto 的益處,並捨棄了goto 語句帶來的麻煩(引用);
需要注意的是:Java中的標籤就是一個緊跟着“:”的標識符。與其他語言不通,Java語言的標籤必須放在循環前面纔有作用。就不要想着能像傳送門有一樣隨心所欲的跳了