向后循环遍历数组中的元素

2022-09-02 04:56:54

这是我的代码:

int myArray[]={1,2,3,4,5,6,7,8};

for(int counter=myArray.length; counter > 0;counter--){
    System.out.println(myArray[counter]);
}

我想以降序打印出数组,而不是升序(从数组的最后一个元素到第一个元素),但我只是被抛出这个错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
    at task1.main(task1.java:14)

为什么会发生这种情况?我希望通过使用myArray.length将计数器设置为8,代码将只打印出数组的第8个元素,然后继续打印之前的元素。


答案 1

Java 中的数组索引自 to 而不是 to ,因此应相应地分配变量并使用正确的比较运算符。0length - 11length

您的循环应如下所示:

for (int counter = myArray.length - 1; counter >= 0; counter--) {

答案 2
  • 第一个索引为 0,最后一个索引为 7 而不是 8
  • 数组的大小为 8