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語言的標簽必須放在循環前面才有作用。就不要想着能像傳送門有一樣隨心所欲的跳了