특정 조건이 충족되는지 확인하기 위해 두 개의 배열을 사용하여 만든 메서드가 있습니다.이 메서드는 문제를 격리하기 위해 만든 테스트 메서드이지만 결과는 아닙니다. 많은 성공). 매번 나는 내가 자바에 아주 새로운 오전 오류배열 요소가 배열의 인덱스로 사용됨
java.lang.ArrayIndexOutOfBoundsException: 3
at Player.testRNumber(Player.java:150)
at GameOfSticks1.HumanVsAI(GameOfSticks1.java:79)
at GameOfSticks1.main(GameOfSticks1.java:216)
을 얻고, 무슨 일이 일어나고 있는지 알아 내려고 한 시간 후, 작은 성공을 거두었 한 코드를 실행 해보십시오. 어떤 도움이라도 정말로 감사 할 것입니다. 여기 제가 사용해온 방법이 있습니다.
public void testRNumber()
{
CurrentScore[0] = 1
int x = CurrentScore[0]; //this equals 12 btw
int y = CurrentScore[1]; //this equals 3 btw
System.out.println(x);
System.out.println(y);
System.out.println((ArrayOfBuckets[x][y]) + 2);
//everything above this comment**strong text** works fine.
if(ArrayOfBuckets[x-1][y] == 1)
System.out.println("Ok, so this if loop seems fine.");
}
귀하의 코드에서 150 행입니까? 그것을 실행할 때 12 및 3을 x 및 y 값으로 인쇄합니까? ArrayOfBuckets의 크기는 [x] [y]와 [x-1] [y]를 포함합니까? – sprinter
당신이 제공 한 코드는'CurrentScore [0] = 1' 다음에 세미콜론이 없기 때문에 컴파일되지 않습니다. 그 문장이 수정되면'x'는'1' 값을 가지며 다음 문장 다음에'12'가 아닙니다. _actual_ 코드와'println' 문장의 출력을 제공하고 어떤 문장이 # 150인지 확인하십시오. –
'//이 주석 위의 모든 것은 ... 잘 작동합니다 '그리고 던져진 예외가'ArrayIndexOutOfBounds'라는 사실에서 문제는'if (ArrayOfBuckets [x-1] [y ] == 1)'. –