22 return關鍵字

return關鍵字

程序執行到方法裏面的return語句時,方法就會返回,return下面的語句不會被執行。
例:

public class MethodTest{

    public static void main(String[] args){
        //不接收返回值也行,符合語法規則,編譯可以通過。
        sumInt(10,20);

        //對於有返回值的方法,通常都會定義變量用來接收方法的返回值
        int result = sumInt(10,20);

        System.out.println("計算結果是:"+result);
    }


    public static int sumInt(int a,int b){

        int c = a + b;

        return c; //程序執行到此處sumInt方法執行結束。並將int類型的值c返回

    }

    public static int test1(){
        return 1; //這行代碼只要執行,整個方法就結束了。
        //System.out.println("hello"); //這裏的代碼是無法執行的,編譯報錯。
    }

    public static void test2(){
        return; //可以,return後面沒有返回任何數據
    }

    /*
    public static int test3(){
        return; //錯誤
    }
    */
}

如果方法有返回值,那麼要在其方法裏面設置返回值。

例:

public class MethodTest{


    /*
     * 編譯階段不會運行代碼,編譯器並不知道flag的值,它只知道flag要麼是true,要麼是false。
     * 對於test1方法,編譯器會考慮到當flag爲false的時候,該方法就沒有返回值了,所以在編譯階段會報錯
     * 
     */

    /*public static int test1() {
        boolean flag = true;
        if (flag) {
            return 1;
        }
    }*/

    //以下程序還是編譯報錯,因爲編譯器就認爲以下的這個if語句的大括號當中的代碼可能執行,也可能不執行。
    /*
    public static int test2(){
        if(true){
            return 1;
        }
    }
    */



    //if結合else使用,這樣要麼執行if中的語句,要麼執行else中的語句。
    //此時編譯器可以判定這個程序return 語句一定會執行的
    public static int test3(boolean flag) {

        /*
         * 下面這種寫法會報錯,需要在else裏面設置返回值 
         */
        /*if (flag) {
            return 0;
        } else {
            System.out.println("1");
        }*/

        if (flag) {
            return 0;
        } else {
            return 1;
        }

    }

    //下面程序會報錯嗎?
    //不會報錯,因爲這樣編寫可以保證一定會有一個return語句執行
    public static int test4(){
        boolean flag = false;
        if(flag){
            return 1;
        }
        return 0;
    }
}

break,continue和return的區別

break; 和 continue; 這兩個語句主要是用來控制循環的,跟方法沒有關係。

return; 和以上的兩個語句不是一個級別的,return;是用來終止當前方法的。

public class Test {


    public static void main(String[] args){

        test();
        System.out.println("hello world!");

    }

    public static void test() {

        for( int i = 0 ; i < 10 ; i ++ ){
            if( i == 5 ){
                //break;
                //continue;
                return; //終止當前方法的執行。(不是終止JVM的執行)
            }
            System.out.println("i = " + i);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章