我有一个8x8网格的单元格,它可以是真(1)或假(0)。我正在尝试在java中编写一个方法,该方法计算列“col”和行“row”中与指定单元格相邻的真实单元的数量。 “世界”是描述每个单元的初始状态的变量(每一位代表一个单元)。 getCell是一个返回由其参数指定的单元格的布尔值的方法。我测试了getCell方法,它已通过我所有的测试,所以我相信它可以按预期工作。我的代码如下所示:缺少返回语句java
public static int countNeighbours(long world, int col, int row){
int numNeighbours = 0;`
if(getCell(world,col-1,row-1))
numNeighbours++;
if(getCell(world,col,row-1))
numNeighbours++;
if(getCell(world,col+1,row+1))
numNeighbours++;
if(getCell(world,col-1,row))
numNeighbours++;
if(getCell(world,col+1,row))
numNeighbours++;
if(getCell(world,col-1,row+1))
numNeighbours++;
if(getCell(world,col,row+1))
numNeighbours++;
if(getCell(world,col+1,row+1))
return numNeighbours;
}
Esentially,它应该像这样工作:
真正的邻居的最初数量为0
然后测试所有周围的细胞,如果有的话它们是真的,它增加numNeighbours由1
在最后它返回最后numNeighbours
但是,当我尝试遵守它时,我收到一条错误消息,指出“错误缺少返回语句”。为什么这样?据我所知,最后有一个很清楚的回归声明。任何人都可以提供我的建议吗?
非常感谢:)
返回语句在last if里面。尝试在最后一个分号后加上分号。 – brijs
一些注意事项:(a)在这里发布大括号会有帮助,这是很多人(包括我)喜欢总是使用它们的原因之一。 (b)你没有-1,-1,但你有+1,+1两次。那是故意的吗? (c)假设没有,一对嵌套'for'循环在这里不太容易出错。 “对于从-1到+1的colDelta,对于从-1到+1的rowDelta,如果getCell,则增量。”它会更清晰,更短,更好 – yshavit