1. 程式人生 > >IT兄弟連 Java語法教程 流程控制語句 控制迴圈結構1

IT兄弟連 Java語法教程 流程控制語句 控制迴圈結構1

Java語言沒有提供goto語句來控制程式的跳轉,這種做法提高了程式流程控制的可讀性,但降低了程式流程控制的靈活性。為了彌補這種不足,Java提供了continue和break來控制迴圈結構。除此之外,return可以結束整個方法,當然也就結束了一次迴圈。

 

使用break結束迴圈

某些時候需要在某種條件出現時強行終止迴圈,而不是等到迴圈條件為false時才退出迴圈。此時,可以使用break來完成這個功能。break用於完全結束一個迴圈,跳出迴圈體。不管是哪種迴圈,一旦在迴圈體中遇到break,系統將完全結束該迴圈,開始執行迴圈之後的程式碼。例如下面的程式。

public class breakDemo{

    public static void main(String[] args){

         for(int i = 0; i<10; i++){

              System.out.println("i的值是" + i);

              if(i == 2){

                   break;

              }

         }

    }

}

執行上面的程式,將看到i迴圈到2時程式即結束,當i等於2時,迴圈體內遇到break語句,程式跳出該迴圈。

break語句不僅可以結束其所在的迴圈,還可以直接結束其外層迴圈。此時需要在break後緊跟一個標籤,這個標籤用於表示一個外層迴圈。

Java中的標籤就是一個緊跟著英文冒號”:“的識別符號。與其它語言不同的是,Java中的標籤只有放在迴圈語句之前才有作用。例如下面程式碼。

public class BreakDemo2{

    public static void main(String[] args){

         outer:

         for(int i = 0; i<5; i++){

              for(int j = 0; j<3; j++){

                   System.out.println("i的值為:" + i + "j的值為:" + j);

                   if(j == 1){

                         break outer;

                   }

             }

         }

    }

}

執行上面程式,將看到如下圖19所示執行結果:

33ad7061695246b7a889aa3bf59f533f.png

圖19  BreakDemo執行結果

 

程式從外層迴圈進入內層迴圈後,當j等於1時,程式遇到一個break outer語句,這行程式碼將會導致結束outer標籤指定的迴圈,不是結束break所在的迴圈,而是結束break迴圈的外層迴圈。所以看到上面的執行結果。

值得指出的是,break後的標籤必須是一個有效的標籤,即這個標籤必須在break語句所在的迴圈之前定義,或者在其所在的迴圈的外層之前定義。當然,如果把這個標籤放在break語句所在的迴圈之前定義,也就失去了標籤的意義,因為break預設就是結束