1. 程式人生 > 其它 >if語句使用break、continue和return區別

if語句使用break、continue和return區別

if語句

if語句分別使用return、continue、break的區別

  1. 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宣告返回型別為空時,應使用這種格式,不返回任何值。
  1. 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語句使流程跳出本層迴圈體,從而提前結束本層迴圈
  1. 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之後,第一層、第二層、第三層會停止執行