Eragon20 - 1 year ago 93
Java Question

# Simplification of successive if statements in Java

I have a series of if statements as shown below:

``````if (board[x+1][y]==true) {
ar+=1;
}
if (board[x][y+1]==true) {
ar+=1;
}
if (board[x-1][y]==true) {
ar+=1;
}
if (board[x][y-1]==true) {
ar+=1;
}
if (board[x+1][y+1]==true) {
ar+=1;
}
if (board[x+1][y-1]==true) {
ar+=1;
}
if (board[x-1][y+1]==true) {
ar+=1;
}
if (board[x-1][y-1]==true) {
ar+=1;
}
``````

Is there a way to simplify/condense these statements with Java?

Any suggestions appreciated.

Tip: You access a 2D array by row then column, or `[y][x]` (at least, that's how you'd translate the board from looking at the code).

``````for (int xDiff = -1; xDiff < 2; xDiff++) {
for (int yDiff = -1; yDiff < 2; yDiff++) {
if (xDiff == yDiff && xDiff == 0) continue;
if (board[y+yDiff][x+xDiff]) {
ar += 1;
}
}
}
``````

Beware - Out of bounds exception is not handled

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download