以下内容来自: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语句被绕过:

这种情况下将产生下面这个编译错误: