Привет всем, для нескольких моих заданий в колледже я обнаружил необходимость проверять соседние ячейки в двумерных массивах (сетках). Решением, которое я использовал, является хакерское использование исключений, и я ищу способ очистить его, не загружая операторы 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
}
}
Мне страшно думать о неэффективности использования исключений для того, чтобы заставить мой код работать, поэтому я ищу предложения о том, как убрать зависимость от исключений из моего кода, не жертвуя читаемостью, если это возможно, и просто о том, как Я мог бы сделать этот сегмент кода в целом более эффективным. Заранее спасибо.