0
Javaの「Game of Life」アプリケーションを構築していて、インデックスが境界を越えているときに問題を検出しています。以下のコードは、ここからの別の質問。インデックスが2次元配列のOutOfBoundsであるかどうかを確認する
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つの上部セルに「壁」が印刷されていても、上端には表示されませんでした。
この場合checkは**正しい**の代わりに**間違った**を意味するようです** –
return(index <1 || index> board.getHeight()); 'あなたは' 0'が'1'より小さい、そう? – bradimus
'board'とそのメソッド' getHeight() 'はどこで定義されていますか? – Dez