循环遍历数组中的元素

Jim*_*myK 13 java arrays for-loop

这是我的代码:

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

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

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

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
    at task1.main(task1.java:14)
Run Code Online (Sandbox Code Playgroud)

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

Tim*_*per 60

Java中的数组索引是从0length - 1,不1length,因此你应该相应地分配你的变量,并使用正确的比较操作.

你的循环应该如下所示:

for (int counter = myArray.length - 1; counter >= 0; counter--) {
Run Code Online (Sandbox Code Playgroud)


Õzb*_*bek 6

使用myArray.length-1

  for(int counter=myArray.length-1; counter >= 0;counter--){
                System.out.println(myArray[counter]);
            }
Run Code Online (Sandbox Code Playgroud)


Vir*_*oll 5

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