Привет всем, для нескольких моих заданий в колледже я обнаружил необходимость проверки соседних ячеек в двумерных массивах (сетки). Решение, которое я использовал, - это что-то вроде взлома с использованием исключений, и я ищу способ очистить его, не имея множества операторов if
, как у некоторых моих одноклассников. Мое текущее решение -
for ( int row = 0; row < grid.length; row++ ) {
for ( int col = 0; col < grid.length; col++ ) {
// this section will usually be in a function
// checks neighbours of the current "cell"
try {
for ( int rowMod = -1; rowMod <= 1; rowMod++ ) {
for ( int colMod = -1; colMod <= 1; colMod++ ) {
if ( someVar == grid[row+rowMod][col+colMod] ) {
// do something
}
}
}
} catch ( ArrayIndexOutOfBoundsException e ) {
// do nothing, continue
}
// end checking neighbours
}
}
. Я содрогаюсь при мысли о неэффективности использования исключений, чтобы заставить мой код работать, поэтому я ' Я ищу предложения о том, как я могу избавиться от зависимости от исключений из моего кода, не жертвуя удобочитаемостью, если это возможно, и как я могу сделать этот сегмент кода в целом более эффективным. Заранее спасибо.