深度解析continue,break和return
阿新 • • 發佈:2018-12-21
continue,break和return是Java中的關鍵字,在流程控制中使用頻率較高。
在使用中,經常會有同學在使用中產生混淆,從而一系列bug。
在這裡,我通過Java程式設計為大家解析三者在實際使用中的區別。
1.continue
通常出現在程式迴圈控制結構中,表示結束本次迴圈,若後續還有迴圈,則繼續進行後面的迴圈。舉例:
class Demo1 {//宣告一個類Demo1 public static void main(String[] args) {//入口函式 for(int i=0;i<5;i++){//for迴圈 if(i==3){//當i=3時,僅結束本次迴圈,但是for迴圈剩餘次數並未結束 continue; } System.out.println(i);//在控制檯列印輸出迴圈遍歷的數字 } System.out.println("for迴圈之後"); } }
在控制檯列印輸出如下:
0
1
2
4
for迴圈之後
可見,當i=3時,僅結束本次迴圈,for迴圈剩下的次數並未結束;同時,for迴圈之後的語句可以正常執行,比如控制檯列印輸出“for迴圈之後”。
我們再來看break。
2.break
我們還用上面的程式碼,不同的是將continue改為break。
class Demo2 {//宣告一個類Demo2 public static void main(String[] args) {//入口函式 for(int i=0;i<5;i++){//for迴圈 if(i==3){//當i=3時,結束for迴圈 break; } System.out.println(i);//在控制檯列印輸出迴圈遍歷的數字 } System.out.println("for迴圈之後"); } }
控制檯列印輸出結果是:
0
1
2
for迴圈之後
可見,當i=3時,for迴圈結束,不再執行剩餘的迴圈,同時繼續執行for迴圈之後的語句(如列印輸出“for迴圈之後”)。
上面是一層or迴圈,如果在兩層for迴圈中使用break會怎樣呢?請看下面的程式碼:
public class Demo3 { public static void main(String[] args) {//入口函式 for(int i=0;i<3;i++){//外層for迴圈 for(int j=0;j<5;j++){//內層for迴圈 if(j==4){//當j=3時,結束內層for迴圈 break; } System.out.println(j);//在控制檯列印輸出迴圈遍歷的數字 } System.out.println("*********");//一輪內層for迴圈結束時的分隔符 } System.out.println("for迴圈之後"); } }
控制檯列印輸出結果是:
0
1
2
3
*********
0
1
2
3
*********
0
1
2
3
*********
for迴圈之後
可見,在兩層for迴圈中,break只是結束了所在層的for迴圈(即內層for迴圈),並未結束外層for迴圈。那麼,改為return會怎樣呢?
3.return
我們先來看下面的程式碼:
class Demo4 {//宣告一個類Demo4
public static void main(String[] args) {//入口函式
for(int i=0;i<3;i++){//外層for迴圈
for(int j=0;j<5;j++){//內層for迴圈
if(j==4){//當i=3時,結束方法
return;
}
System.out.println(j);//在控制檯列印輸出迴圈遍歷的數字
}
System.out.println("*********");//一輪內層for迴圈結束時的分隔符
}
System.out.println("for迴圈之後");
}
}
控制檯列印輸出為:
0
1
2
3
可見,使用return後,整個方法結束。
最後做下總結:
在迴圈控制語句中,continue僅結束本次迴圈;break結束本重迴圈;return結束當前方法。
希望能幫到您!