我們知道return語句用在某一個方法中,一是用於返回函數的執行結果,二是用於返回值為void類型的函數中,僅僅是一個return語句(return ;),此時用於結束方法的執行,也即此return后的語句將不會被執行,當然,這種情況下return語句后不能再有其它的語句了。
public static int print() { int c = 1; try { c++; System.out.println("try執行中..."); return c+100; //--------1 } catch (Exception e) { e.printStackTrace();
//return c; //--------4 } finally { c++; System.out.println("finally執行中..."); return c; //--------2 } //return c; //---------3 }
程序執行的結果為:
run: try執行中... finally執行中... 3 成功構建 (總時間: 0 秒)
注意,2與3位置處的return語句只能有一個,並且2、3、4中必須有一個return語句,如果2出執行后方法就結束了,3處的語句得不到執行。
try語句塊執行到1處時,會將會將函數的返回值存放到另外一個臨時變量(不同與c的變量,它的值為102)中,由於未發生異常,緊接着將會執行finally語句塊,2處又遇到一個語句塊,並將返回值存放到臨時變量(值為3)中,最終返回的是此處的臨時變量的值,此處return執行完成后,該方法結束。
public static int print() { int c = 1; try { c++; System.out.println(c); System.out.println("try"); return c+100; //--------1 }finally { c++; System.out.println(c); System.out.println("finally"); } }
上述代碼中finally語句塊中沒有return語句,函數最終返回的是第一個臨時變量的值,也即102,執行結果如下:
run: try finally 102 成功構建 (總時間: 0 秒)
