Also ich bin eine Art von "Game of Life" -Anwendung in Java und haben einige Probleme zu erkennen, wenn der Index außerhalb der Grenzen ist. Der folgende Code ist eine modifizierte Version von Noch eine Frage von SO.Überprüfen, ob der Index OutOfBounds in einem 2D-Array ist
2D-Array:
1,1,1,1
1,1,1,1
1,1,1,1
1,1,1,1
-Code
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());
}
Ergebnis:
Verfahrgeschwindigkeit:
-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
In diesem Beispiel sollten die 4 oberen Zellen "Wall" gedruckt haben, aber sie nicht.
"check" in diesem Fall scheint zu implizieren ** falsch ** statt ** korrekt ** –
'return (index <1 || index> board.getHeight());' Sie erkennen, dass die '0' ist weniger als '1', oder? – bradimus
Wo definierst du 'board' und seine Methode' getHeight() '? – Dez