Я написал фрагмент кода, который продолжает давать мне ошибку ArrayIndexOutOfBoundsException, и я действительно не знаю почему. Я думаю, что я правильно задал размеры массивов, но, видимо, это неверно. Даже если я задаю размеры массивов до 100, я все равно получаю ошибку. Ниже кода вы можете найти ввод данных.Не знаю, что вызывает мою ошибку ArrayIndexOutOfBoundsException
import java.util.Scanner;
public class GameOfLife {
public static void main(String []args) {
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
int width = scanner.nextInt();
int generations = scanner.nextInt();
Boolean[][] cellsInput = new Boolean[length - 1][width - 1];
System.out.println();
int count = 0;
int y = 0;
while (scanner.hasNext()) {
count++;
if (count <= length) {
if (scanner.next().equals(".")){
cellsInput[y++][count] = false;
} else if (scanner.next().equals("*")) {
cellsInput[y++][count] = true;
}
}
else {
count = 0;
y++;
if (scanner.next().equals(".")){
cellsInput[y++][count] = false;
} else if (scanner.next().equals("*")) {
cellsInput[y++][count] = true;
}
}
}
}
}
ввода (например):
15 15 3
. . . . . . . . . . . . . * .
. . . . . . . . . . . . * . .
. . . . . . . . . . . . * * *
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
* * * * * * * * . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
Не думайте, что вы правильно задали размеры: проверьте. Используйте некоторые тактические инструкции 'System.out.println()' для проверки *, чтобы ваши индексы находились в допустимых диапазонах. –
Это 'Boolean [] [] cellsInput = new Boolean [length - 1] [width - 1];' тоже неверно. –
Посмотрите на трассировку стека исключений, чтобы определить, где происходит исключение. Добавьте инструкции println перед этим оператором, чтобы распечатать значения индекса и размеры массива. Определите, какая ценность идет не так. Затем перейдите через свой код, чтобы понять, почему это значение неверно. Это основной процесс отладки. –