java布尔方法返回语句
Posted
技术标签:
【中文标题】java布尔方法返回语句【英文标题】:java boolean method return statement 【发布时间】:2013-10-01 17:08:44 【问题描述】:我正在尝试对游戏进行编程,并且正在制定方法来检查玩家不同侧面的地形。我使用的是布尔方法,但 netbeans 告诉我我没有返回语句。
public boolean checkTerrainDown(Level levelToCheck)
for(Terrain terrainToCheck: levelToCheck.levelTerrain)
if(y+h<terrainToCheck.getY())
return true;
else
return false;
【问题讨论】:
当你的方法必须返回一些东西时,你需要为每个可能的执行路径提供返回语句。 最好只有一个唯一的 return 语句!顺便说一句,你不必为你正在做的事情做一个for
..你只需要第一个元素..除了使用return y+h < terraintoCheck.getY();
@nachokk:不,真的不是。使您的代码尽可能清晰是一个很好的做法。有时这意味着一个 return 语句 - 有时它意味着多个。
@JonSkeet 你说得对,这是我个人的决定,我大多数时候不喜欢多次退货,我认为我只对“简单案例”使用多次退货,但代码清晰易读是我们必须指出的:)。
【参考方案1】:
如果没有要检查的Terrain
怎么办?然后for
循环的主体永远不会被执行。在 for
循环之后没有 return
语句来解释这种情况。在这种情况下,Java 会返回什么?
在for
循环之后放置一个return
语句来处理Level
的levelTerrain
中没有Terrain
的情况。这样,每一个可能的执行情况都会return
一些东西。
【讨论】:
【参考方案2】:如果for loop
没有被执行,那么就不会执行return语句。
【讨论】:
【参考方案3】:public boolean checkTerrainDown(Level levelToCheck)
//add this line
boolean mark = false;
for(Terrain terrainToCheck: levelToCheck.levelTerrain)
if(y+h<terrainToCheck.getY())
//add this line,remove this //return true;
mark = true;
//add this line
break;
//else
//return false;
//
//add this line
return mark;
【讨论】:
以上是关于java布尔方法返回语句的主要内容,如果未能解决你的问题,请参考以下文章