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()'문을 사용하여 인덱스가 유효한 범위 내에 있는지 확인하십시오. –
이 부울 [] [] cellsInput = 새로운 부울 [길이 - 1] [폭 - 1]; '도 잘못되었습니다. –
예외 스택 추적을보고 예외 발생 위치를 확인하십시오. 해당 명령문 앞에 println 문을 추가하여 인덱스 값과 배열 크기를 인쇄하십시오. 어떤 가치가 잘못되었는지 판단하십시오. 그런 다음 코드를 거꾸로하여 그 값이 잘못된 이유를 알아냅니다. 그것은 기본적인 디버깅 프로세스입니다. –