我写了这个简单的代码
int[] arr = new int[5];
System.out.printf("Please enter %d numbers: ", arr.length);
for (int i1=0; i1<arr.length; i1++) {
arr[j] = S.nextInt();
}
System.out.printf("The numbers you enterd in reverse order are: ");
for (int i1=(arr.length); i1>=0; i1--) {
System.out.print(arr[i1]);
}
当我尝试反向打印数组时,出现java.lang.ArrayIndexOutOfBoundsException
错误。
正如我所看到的那样,我从未指出过大于5的指数。如何解决?
答案 0 :(得分:2)
这是因为数组索引必须介于 0 和 length-1 之间。所以你可以这样做:
for (int i1=(arr.length - 1); i1>=0; i1--) {
...
}
答案 1 :(得分:1)
你的第二个循环应该以arr.length -1开头。然后它会工作。在你的反向循环中,你期待6个元素。因此错误。
答案 2 :(得分:1)
没有元素的索引与数组长度相同。倒计时时,您必须从length-1
向下转到0
。
答案 3 :(得分:1)
数组的最大索引是4(0,1,2,3和4)。在你的第二个循环中,首先将数组的长度分配给i1,即5,因此超出界限。你应该使用长度 - 1