if語句使用break、continue和return區別
阿新 • • 發佈:2021-09-13
if語句
if語句分別使用return、continue、break的區別
- return
public static void main(String[] args) {
System.out.println("start");
for (int i = 0; i < 10; i++) {
if (i == 2){
return;
}
System.out.println(i);
}
System.out.println("end");
}
//執行結果
start
0
1
總結:
- return會結束迴圈,後面的語句不會執行
- return 從當前的方法中退出,返回到該呼叫的方法的語句處,繼續執行
- return 返回一個值給呼叫該方法的語句,返回值的資料型別必須與方法的宣告中的返回值的型別一致,可以使用強制型別轉換來是資料型別一致
- return 當方法說明中用void宣告返回型別為空時,應使用這種格式,不返回任何值。
- break
public static void main(String[] args) { System.out.println("start"); for (int i = 0; i < 10; i++) { if (i == 2){ break; } System.out.println(i); } System.out.println("end"); } //執行結果 start 0 1 end
- break結束迴圈,後面的語句會執行
- 只能在迴圈體內和switch語句體內使用break語句。
- 當break出現在迴圈體中的switch語句體內時,其作用只是跳出該switch語句體。
- 當break出現在迴圈體中,但並不在switch語句體內時,則在執行break後,跳出本層迴圈體。
- 在迴圈結構中,應用break語句使流程跳出本層迴圈體,從而提前結束本層迴圈
- continue
public static void main(String[] args) { System.out.println("start"); for (int i = 0; i < 10; i++) { if (i == 2){ continue; } System.out.println(i); } System.out.println("end"); } //執行結果 start 0 1 3 4 5 6 7 8 9 end
- continue會結束本次判斷的迴圈,跳入下一個迴圈
- 其作用是結束本次迴圈,即跳過本次迴圈體中餘下尚未執行的語句,接著再一次進行迴圈的條件判定。
- 注意:執行continue語句並沒有使整個迴圈終止。在while和do-while迴圈中,continue語句使得流程直接跳到迴圈控制條件的測試部分 ,然後決定迴圈是否繼續進行。
- 在for 迴圈中,遇到continue後,跳過迴圈體中餘下的語句,而去對for語句中的“表示式3”求值,然後進行“表示式2”的條件測試,
最後根據“表示式2”的值來決定for迴圈是否執行。在迴圈體內,不論continue是作為何種語句中的語句成分,都將按上述功能執行,這點與break有所不同
public class MySet2 {
public static void main(String[] args) {
fun();
}
private static void fun() {
System.out.println("函式要執行了......");
for (int i = 0; i < 5; i++) {
if (i == 2){
break;
}
System.out.println(i);
}
System.out.println("函式要停止了......");
}
}
第一次使用break
執行結果為:
函式要執行了......
0
1
函式要停止了......
從結果中看到當使用break時,if語句執行了三次,當到第三次i的值等等於2了,那麼就會執行break,開始執行break後就直接終止了for迴圈,for迴圈結束後會繼續執行下面的程式碼,也就是 函式要停止了......
整個迴圈從外到裡共三層,第一層是fun()函式,第二層是for迴圈,第三層是if判斷
if語句中使用break後,第二層和第三層會停止執行,第一層會繼續執行
第二次使用continue
執行結果為:
函式要執行了......
0
1
3
4
函式要停止了......
從結果中看到當使用continue時,if語句執行了一次,當i的值等等於2時,就結束了if判斷,並且不會執行,但是for迴圈還是會繼續執行,也就是說if是一次性程式碼,只要滿足i的值等等於2,它就會執行,執行後下次就在for迴圈內就不會執行第二次
整個迴圈從外到裡共三層,第一層是fun()函式,第二層是for迴圈,第三層是if判斷
當if使用了continue之後,第三層會停止執行,第一層和第二層繼續執行未完成的工作
第二次使用return
函式要執行了......
0
1
從結果看,使用return語句時,if會停止執行,for迴圈會停止執行,函式也會停止執行
整個迴圈從外到裡共三層,第一層是fun()函式,第二層是for迴圈,第三層是if判斷
當if使用了return之後,第一層、第二層、第三層會停止執行