以下內容來自:http://book.csdn.net/bookfiles/170/1001707575.shtml

return語句

return語句是用來退出方法的跳轉語句:

只要遇到return語句,方法就在那一行代碼停止執行,執行控制將立刻返回到調用該方法的代碼處。

????????? 對于返回值類型為void的方法,return關鍵字單獨作為完整的語句使用:

然而,對于返回類型為void的方法,return;語句是可選的。如果省略這條語句,隱含表明方法的最后一行有一個return;語句。即,下面兩個版本的doSomething方法是等價的:

另一方面,對于返回類型非void的方法體,必須至少包括一條明確的return語句。這種情況下,return關鍵字后面必須跟隨一個求值類型和方法聲明的返回類型一致的表達式。例如,如果方法定義為具有int返回類型,那么下列任何一種return語句都可以接受:

等等。另一個例子,如果方法定義為具有boolean返回類型,那么下列任何一種return語句都可以接受:

方法體可以包含不只一條return語句。但好的編程習慣是一個方法中只在最末尾包含一條return語句。再看一下前面討論過的isHornorsStudent方法,這個方法有兩條return語句:

使用局部boolean變量result來重寫這個方法,該變量捕獲最終返回的true/false結果。在方法最末尾用一條return語句返回result變量的值:

如上述代碼所示,由于已經給result變量賦予初值false,因此在else子句中明確地給它賦值false是不必要的,可以像下面這樣簡化isHornorsStudent方法:

但是有一種情況下多個return語句是可以接受的:方法需要執行一系列操作,在這個過程中,任何一步失敗意味著整個方法失敗。下面的偽代碼闡明了這種情況:

????????? 注意,Java編譯器會校驗是否方法的所有邏輯路徑都返回類型正確的結果。例如,下面的方法會產生編譯錯誤,因為只有在if測試成功時才能到達return語句,如果if測試失敗,則return語句被繞過:

這種情況下將產生下面這個編譯錯誤: