我是一名新程序员,我不知道这次回归的结果是什么?我发表评论。 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;
}
答案 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;
语句只允许您跳过方法中的其余代码并退出方法。