为什么不用Reverse打印?

时间:2014-03-17 07:34:07

标签: java arrays for-loop indexoutofboundsexception

我有一个非常简单的问题,但我似乎无法解决它。我在这段代码上出现了越界错误

int c = 0;
System.out.println();
System.out.println("Printing array in Reverse order:");
for (int i = array.length ; i >= -1; i--)
{
   System.out.println(array[i] +" ");
   c++;
   if(c == 10) 
   {
       System.out.println();
       c=0;
   }
}

这笔交易是什么?

4 个答案:

答案 0 :(得分:3)

for (int i = array.length ; i >= -1; i--) {

错误,数组从索引零开始,所以"长度"数组是从索引0到索引"长度 - 1"

所以你的代码错了,你应该使用

for (int i = array.length - 1 ; i >= 0; i--) {

答案 1 :(得分:0)

你得到一个IndexOutOfBounds因为你从数组

开始
int c = 0;
    System.out.println();
    System.out.println("Printing array in Reverse order:");
    for (int i = array.length -1; //HERE
                          i >= 0;//HERE
                          i--) {
      System.out.println(array[i] +" ");
      c++;
      if(c == 10) {
       System.out.println();
       c=0;
      }
    }

答案 2 :(得分:0)

在Java中,数组索引从0到“length - 1”。因此,如果您从array.length开始,您将尝试访问阵列的位置。如果您尝试访问-1索引,则会出现相同的情况,因为您的最小索引为0.

答案 3 :(得分:0)

这是一小段代码,可以让你反过来:)

public class newarray {

    public static void main(String args[]){

        int arr[]={10,20,30};
        int size=arr.length;
        for(int i=size-1;i>=0;i--){
            System.out.println(arr[i]);


        }


    }
}

OutPut:

30 20 10