У меня есть этот код здесь, и я хотел бы проверить все значения вокруг случайной точки и посмотреть, является ли это == 1, но если я проверю любое значение на границе массива, я получаю ошибку «ArrayIndexOutOfBoundsException». Я пробовал много вещей, но не могу заставить его работать. Любая помощь будет оценена!Как проверить границы без ошибок?
if (arr[i + 1][j] == 1) {
arr[i][j] = 1;
return true;
}
else if (arr[i - 1][j] == 1) {
arr[i][j] = 1;
return true;
}
else if (arr[i][j + 1] == 1) {
arr[i][j] = 1;
return true;
}
else if (arr[i][j - 1] == 1) {
arr[i][j] = 1;
return true;
}
else {
return false;
}
ваш код пытается получить доступ к элементу по индексу, который не доступен в массиве, так просто отладки кода, проверьте длину массива и индексы, которые вы используете, потому что ваш код неполный, поэтому никто не сможет рассказать вам о точном проблемном коде –
. Мое первое предположение заключается в том, что в любом цикле, который вы используете для достижения i & j, вы не вычисляете тот факт, что массивы начинаются при индексе 0 и, таким образом, пытаются найти индекс массива, который равен его размеру (зная, что последний элемент массива равен 1 arraySize) –
Мне известно о проверке границ. Мне все равно нужно сравнивать эти точки, и мне нужен способ сделать это, не получив ошибку. Я пробовал много способов избежать этого, но я заработал. –