java - ArrayIndexOutOfBoundsException 데이터 액세스 시도

기사 출처 java

다음 코드에서 배열 인덱스 범위를 벗어난 예외가 발생합니다.

for (int i=1; i<11; i++) {
    int a[][] = new int[10][3];
double LeftTrim = 1.0;
double RightTrim = 1.0;

a [i][0]=(int) (LeftTrim*((i)*25));
a [i][1]=(int) (RightTrim*((i)*25));
a [i][2]= 5000;

//leftWheel, rightWheel, Milliseconds
myf.setWheelVelocities(a[i][0], a[i][1], a[i][2]);
JOptionPane.showMessageDialog(null, + (a [i][0]  +  a [i][1])/2 + "wheel velocities"  + " | " + a [i][2] + " Milliseconds" +  " Click OK to continue...");
}


9 번째 증분에 도달 할 때마다 Eclipse에서 오류가 발생합니다.

"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10"


속도를 최대 250까지 테스트해야하지만 225에 도달하고 '계속하려면 확인을 클릭하십시오 ...'에서 '확인'을 클릭하면이 오류가 표시됩니다! 배열 경계를 벗어나는 것입니까?

편집 : 속도 속도는 25, 50, 75 ... 250 (모두 10 개)에서 시작해야합니다.

감사합니다!
i에서 a[i]의 유효한 값은 0에서 9까지입니다. 코드는 10까지 반복됩니다.

또한 루프는 1에서 시작하지만 0에서 시작해야 할 수도 있습니다.

마지막으로, 루프 내부에 2D 배열을 할당한다는 사실은 매우 이상해 보입니다. 루프 외부로 이동하거나 요소를 3 개 가진 1D 배열로 바꾸십시오.

이 질문에 대해 Stack Overflow에서 비슷한 토론을 찾았습니다: https://stackoverflow.com/questions/13810678/

관련 기사
java - charAt ()은 문자열을 반환하지 않습니까?
enums - Java API에서 열거 형 사용
java - 자바에서 정수 비교
java - RandomAccess 인터페이스, 왜 메소드가 없습니까?
java - Java의 내부 클래스에서 변수에 액세스
java - 날짜 시간 형식 Java로 시간 추가
java - Java 인터페이스에 대한 Java 특성 파일 바인딩
java - "리소스로 시도"에 문제가 있음
java - 배포 (게시) 후 Weblogic 오류 : 오류 503-- 서비스를 사용할 수 없음
java - Java의 arraylist에 대용량 파일을로드하는 가장 좋은 방법