標籤:style blog http color java 使用 strong for
本篇將和大家做個continu3和break的比較。
在Java語言中,有一些跳離的語句,如break、continue等語句,站在結構化程式設計的角度上,並不鼓勵使用,因為這些跳離語句會增加調試及閱讀上的困難。因此建議:除非在某些不得以的情況下之外,否則盡量不要去使用它們。在本篇中,將介紹break及continue語句。
break語句
break語句可以強迫程式跳離迴圈,當程式執行到break語句時,即會離開迴圈,繼續執行迴圈外的下一個語句,如果break語句出現在嵌套迴圈中的內層迴圈,則break 語句只會跳離當前層的迴圈。以的for迴圈為例,在迴圈主體中有break語句時,當程式執行到break,即會離開迴圈主體,而繼續執行迴圈外層的語句。
以下面的程式為例,利用for迴圈輸出迴圈變數i的值,當i除以3所取的餘數為0時,即使用break語句的跳離迴圈,並於程式結束前輸出迴圈變數I的最終值。
01 // 下面的程式是介紹break的使用方法
02 public class TestJava3_32
03 {
04 public static void main(String[] args)
05 {
06 int i ;
07
08 for(i=1;i<=10;i++)
09 {
10 if(i%3 == 0)
11 break ; // 跳出整個迴圈體
12 System.out.println("i = "+i);
13 }
14 System.out.println("迴圈中斷:i = "+i);
15 }
16 }
輸出結果:
i = 1
i = 2
迴圈中斷:i = 3
程式說明:
1、 第9~13行為迴圈主體,i為迴圈的控制變數。
2、 當i%3為0時,符合if的條件判斷,即執行第11行的break語句,跳離整個fo迴圈。此例中,當i的值為3時,3%3的餘數為0,符合if的條件判斷,離開for迴圈,執行第14行:輸出迴圈結束時迴圈控制變數i的值3。通常設計者都會設定一個條件,當條件成立時,不再繼續執行迴圈主體。所以在迴圈中出現break語句時,if 語句通常也會同時出現。
continue語句
continue語句可以強迫程式跳到迴圈的起始處,當程式運行到continue語句時,即會停止運行剩餘的迴圈主體,而是回到迴圈的開始處繼續運行。以的for 迴圈為例,在迴圈主體中有continue語句,當程式執行到continue,即會回到迴圈的起點,繼續執行迴圈主體的部分語句。
將程式TestJava3_32 中的break 語句改成continue 語句就形成了程式TestJava3_33.java。可以觀察一下這兩種跳離語句的不同。break語句是跳離當前層迴圈,而continue語句是回到迴圈的起點。程式如下所示:
01 // 下面的程式是介紹continue的使用方法
02 public class TestJava3_33
03 {
04 public static void main(String[] args)
05 {
06 int i ;
07
08 for(i=1;i<=10;i++)
09 {
10 if(i%3==0)
11 continue ; // 跳出一次迴圈
12 System.out.println("i = "+i);
13 }
14 System.out.println("迴圈中斷:i = "+i);
15 }
16 }
輸出結果:
i = 1
i = 2
i = 4
i = 5
i = 7
i = 8
i = 10
迴圈中斷:i = 11
程式說明:
1、 第9~13行為迴圈主體,i為迴圈控制變數。
2、 當i%3 為0時,符合if 的條件判斷,即執行第11行的continue語句,跳離目前的for迴圈(不再執行迴圈體內的其他的語句),而是回到迴圈開始處繼續判斷是否執行迴圈。此例中,當i 的值為3、6、9時,取餘數為0,符合if 判斷條件,離開當前層的for迴圈,再回到迴圈開始處繼續判斷是否執行迴圈。
3、 當i 的值為11時,不符合迴圈執行的條件,此時執行程式第14行:輸出迴圈結束時迴圈控制變數i的值11。當判斷條件成立時,break語句與continue語句會有不同的執行方式。Break語句不管情況如何,先離開迴圈再說;而continue語句則不再執行此次迴圈的剩餘語句,直接回到迴圈的起始處。