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所示執行結果:
圖19 BreakDemo執行結果
程式從外層迴圈進入內層迴圈後,當j等於1時,程式遇到一個break outer語句,這行程式碼將會導致結束outer標籤指定的迴圈,不是結束break所在的迴圈,而是結束break迴圈的外層迴圈。所以看到上面的執行結果。
值得指出的是,break後的標籤必須是一個有效的標籤,即這個標籤必須在break語句所在的迴圈之前定義,或者在其所在的迴圈的外層之前定義。當然,如果把這個標籤放在break語句所在的迴圈之前定義,也就失去了標籤的意義,因為break預設就是結束