3

次のコードで配列インデックスが範囲外の例外を取得しています。

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 に達して [OK をクリックして続行...] で [OK] をクリックすると、このエラーが表示されます。

編集: 速度速度は 25、50、75 ... 250 (全部で 10) から開始する必要があります。

ありがとうございました!

4

2 に答える 2

9

iinの有効な値a[i]0to9です。あなたのコードは まで繰り返され10ます。

また、ループは から始まりますが、 から始める必要が1あるかもしれません0

最後に、ループ内で 2D 配列を割り当てているという事実は、かなり奇妙に見えます。ループの外に移動するか、3 要素の 1D 配列に変換してください。

于 2012-12-10T22:51:58.437 に答える
2

コードを次のように変更する必要があります

for (int i = 0; i < 10; i++) {
}

Java では、配列インデックスは から始まります0

于 2012-12-10T22:58:48.243 に答える