一个简单的代码,返回的结果是什么?

时间:2014-10-12 04:47:51

标签: java

我是一名新程序员,我不知道这次回归的结果是什么?我发表评论。 if()后跟{}后面是真的吗?谢谢

  public void blow(int amount)
  {
     if (this.popped)
         return;                                          //what is this? true or false
     this.radius += amount;
     if (this.radius <= this.maxRadius)
          return;                                         // what is this?
     this.radius = 0;
     this.popped = true;
 }

3 个答案:

答案 0 :(得分:0)

这只会将控制流返回到调用函数的位置。它终止了打击的执行。

编辑:由于你的函数的返回类型为void,你不能返回一个值,所以你看这个返回的方式就是终止函数。

这就是它

 public void blow(int amount)
 {
     if (this.popped)
         return;                     //This stops the function right here, no lines
                                     //in the function beyond this are executed
     this.radius += amount;

     if (this.radius <= this.maxRadius)
         return;                     // same as above

     this.radius = 0;
     this.popped = true;

}

答案 1 :(得分:0)

首先要做的事情:一个不返回声明为返回void的方法的值。

这些return陈述作为早期退出;它们只是强制执行方法停止(more formally, "completes abruptly")并将控制权返回给调用者而没有任何结果。如果它超过第一个return,则会产生副作用,因为此时radius的状态会发生变化。

更正式地说,这是来自Java Language Specification为何允许这样做:

  

如果方法声明为void,则其主体不得包含任何具有表达式的返回语句(第14.17节),否则会发生编译时错误。

一般来说,拥有多个退出路径并不是一个好习惯,因为它可能会使调试变得有点痛苦,并且在阅读代码时会导致混淆。

答案 2 :(得分:0)

您的方法返回类型为void,这意味着它无法返回任何内容。 return;语句只允许您跳过方法中的其余代码并退出方法。