所以我在java中构建了一种“生命游戏”应用程序,并且在检测索引何时超出限制时遇到一些问题。下面的代码是来自SO的另一个qustion的修改版本。
2D数组:
1,1,1,1
1,1,1,1
1,1,1,1
1,1,1,1
代码的
private void traverse() {
for (int i = 0; i < brickArray.length; i++) {
for (int j = 0; j < brickArray[i].length; j++) {
System.out.println(i - 1 + "," + j);
checkIfAllowed(i - 1, j);
}
}
}
public void checkIfAllowed(int row, int column) {
boolean incorrect = check(row) && check(column);
if (incorrect) {
System.out.println("Wall");
} else {
System.out.println("Road");
}
}
private boolean check(int index) {
return (index < 0 || index > board.getHeight());
}
结果:
遍历:
-1,0
Road
-1,1
Road
-1,2
Road
-1,3
Road
0,0
Road
0,1
Road
0,2
Road
0,3
Road
1,0
Road
1,1
Road
1,2
Road
1,3
Road
2,0
Road
2,1
Road
2,2
Road
2,3
Road
在这个例子中,4个顶部单元格应该打印“Wall”,但它们没有。
答案 0 :(得分:0)
否定姓名和中立名称(check
)的陷阱。
boolean incorrect = check(row) || check(column);
当行或列不正确时,整个坐标都不正确。
我会在这里写check
,因为现在董事会必须使用getHeight进行检查。