1

我正在尝试对游戏进行编程,并且正在制定方法来检查玩家不同侧面的地形。我正在使用布尔方法,但 netbeans 告诉我我没有返回语句。

public boolean checkTerrainDown(Level levelToCheck){
    for(Terrain terrainToCheck: levelToCheck.levelTerrain){
        if(y+h<terrainToCheck.getY()){
            return true;
        }else{
            return false;
        }
    }
}
4

3 回答 3

6

如果没有Terrain检查怎么办?然后for循环体永远不会被执行。您在循环之后没有任何return语句来说明这种情况。for在这种情况下,Java 会返回什么?

在循环之后放置一个return语句来处理'sfor中没有的Terrain情况。这样,每一个可能的执行案例都会有所作为。LevellevelTerrainreturn

于 2013-09-25T22:29:48.373 回答
1

如果for loop没有执行,则不会执行 return 语句。

于 2013-09-25T22:34:01.437 回答
1
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;
}
于 2013-09-25T22:46:58.883 回答