java方法结束隐含return_有效使用return语句(return可用于控制方法的执行,比如,若某一环节失败则退出方法等)...

以下内容来自:http://book.csdn.net/bookfiles/170/1001707575.shtml

return语句

return语句是用来退出方法的跳转语句:

image033.jpg

image034.jpg

只要遇到return语句,方法就在那一行代码停止执行,执行控制将立刻返回到调用该方法的代码处。

对于返回值类型为void的方法,return关键字单独作为完整的语句使用:

image035.jpg

然而,对于返回类型为void的方法,return;语句是可选的。如果省略这条语句,隐含表明方法的最后一行有一个return;语句。即,下面两个版本的doSomething方法是等价的:

image037.jpg

image038.jpg

另一方面,对于返回类型非void的方法体,必须至少包括一条明确的return语句。这种情况下,return关键字后面必须跟随一个求值类型和方法声明的返回类型一致的表达式。例如,如果方法定义为具有int返回类型,那么下列任何一种return语句都可以接受:

image039.jpg

等等。另一个例子,如果方法定义为具有boolean返回类型,那么下列任何一种return语句都可以接受:

image040.jpg

方法体可以包含不只一条return语句。但好的编程习惯是一个方法中只在最末尾包含一条return语句。再看一下前面讨论过的isHornorsStudent方法,这个方法有两条return语句:

image042.jpg

使用局部boolean变量result来重写这个方法,该变量捕获最终返回的true/false结果。在方法最末尾用一条return语句返回result变量的值:

image043.jpg

如上述代码所示,由于已经给result变量赋予初值false,因此在else子句中明确地给它赋值false是不必要的,可以像下面这样简化isHornorsStudent方法:

image044.jpg

但是有一种情况下多个return语句是可以接受的:方法需要执行一系列操作,在这个过程中,任何一步失败意味着整个方法失败。下面的伪代码阐明了这种情况:

image046.jpg

image047.jpg

注意,Java编译器会校验是否方法的所有逻辑路径都返回类型正确的结果。例如,下面的方法会产生编译错误,因为只有在if测试成功时才能到达return语句,如果if测试失败,则return语句被绕过:

image048.jpg

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

image049.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值