Day16 break-continue-goto
break在任何迴圈語句的主體部分,可用其控制迴圈流程,強行退出迴圈,不執行迴圈中剩餘的語句,break語句也在 switch 語句中使用。
continue 語句用在迴圈語句體中,用於終止某次迴圈過程,即跳過迴圈體中尚未執行的語句,接著進行下一次是否執行迴圈的判定。
關於 goto 關鍵字,
很早就在程式設計語言中出現。儘管 goto 仍是 Java 的一個保留字,但並未在語言中得到正式使用,Java 沒有 goto。然而,在 break 和 continue 這兩個關鍵字上,仍能看出一些 goto 的影子,即帶標籤的 break 和 continue。
“標籤”是指後面跟一個冒號的識別符號,例如:label:。
對 Java 來說唯一用到標籤的地方是在迴圈語句之前,在迴圈之前設定標籤的唯一理由是希望在其中巢狀另一個迴圈,由於 break 和 continue 關鍵字通常只中斷當前迴圈,但隨同標籤使用,它們就會中斷到存在標籤的地方。
break和continue的區別
break例項:
i從0開始,每次迴圈i增加1,迴圈條件:i<100。i到30的時候為break,
int i=0;
while(i<100){
i++;
System.out.print(i+"\t");
if(i==30){
break;
}
//輸出結果:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
//break強行退出迴圈,不執行迴圈中剩餘的語句
結果:break強行退出迴圈,不執行迴圈中剩餘的語句
continue例項
i從0開始,每次迴圈i增加1,迴圈條件:i<100。i為10的倍數時,不輸出,換行,continue
int i=0;
while(i<100){
i++;
if(i%10==0){
System.out.println(); //System.out.println();的作用是在控制檯輸出一個換行符。
continue;
}
System.out.print(i+"\t");
}
/*
1 2 3 4 5 6 7 8 9
11 12 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
31 32 33 34 35 36 37 38 39
41 42 43 44 45 46 47 48 49
51 52 53 54 55 56 57 58 59
61 62 63 64 65 66 67 68 69
71 72 73 74 75 76 77 78 79
81 82 83 84 85 86 87 88 89
91 92 93 94 95 96 97 98 99
*/
//continue 用於終止某次迴圈過程,即跳過本次迴圈中尚未執行的語句,接著進行下一次是否執行迴圈的判定。
總結:
break 在任何迴圈語句的主體部分,均可用 break 控制迴圈的流程。break 用於強行退出迴圈,不執行迴圈中剩餘的語句。(break 語句也在 switch 語句中使用)。
continue 語句用在迴圈語句體中,用於終止某次迴圈過程,即跳過迴圈體中尚未執行的語句,接著進行下一次是否執行迴圈的判定。
goto標籤
例項:列印101-150之間所有的質數
//列印101-150之間所有的質數
int count=0;
//outer:標籤
outer:for(int i=101;i<=150;i++){
for(int j=2;j<i/2;j++){
if(i%j==0){
continue outer; //從內部的for迴圈跳到outer標記的外部outer迴圈
}
}
System.out.print(i+" "); //輸出數字之間帶空格
}
//輸出結果:101 103 107 109 113 127 131 137 139 149