我有一個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