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 并单击“确定”上的“单击确定以继续...”时出现此错误!我是否超出了数组边界或什么?

编辑:速度必须从 25、50、75 ... 250 开始(总共十个)

谢谢!

4

2 回答 2

9

iina[i]的有效值为0to 9。您的代码迭代到10.

此外,循环从开始,1而它可能需要从 开始0

最后,您在循环内分配二维数组的事实看起来很奇怪。要么把它移到循环之外,要么把它变成一个三元素一维数组。

于 2012-12-10T22:51:58.437 回答
2

您需要将代码更改为

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

在 Java 中,数组索引从0.

于 2012-12-10T22:58:48.243 回答