尝试访问数据的ArrayIndexOutOfBoundsException

时间:2012-12-10 22:51:02

标签: 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开始(总共十个)

谢谢!

2 个答案:

答案 0 :(得分:9)

ia[i]的有效值为09。您的代码会迭代到10

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

最后,你在循环中分配2D数组的事实看起来很奇怪。将其移动到循环外部,或将其转换为三元素1D阵列。

答案 1 :(得分:2)

您需要将代码更改为

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

在Java中,数组索引从0开始。