线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException?
包装图钉;

public class Array {

    public static void main(String[] args) {
        int i;
        int[] ar1 = new int[50];
        for(i = 0; i < ar1.length; i++)
        {
            ar1[i] = i * 2 + 1;
            System.out.print(ar1[i] + " ");
        };

        System.out.println();

        for(i = ar1.length; i > -1; i--)
        {
            ar1[i] = i * 2 - 1;
            System.out.print(ar1[i]);
        };

    }

}


编译后,控制台显示:


  1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49
  51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95
  97 99
  
  线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:
  50 at studing.Array.main(Array.java:18)


我想要第二行的输出控制台99 97 95 93 ...

提前致谢!

最佳答案

您在第二个循环中从ar1.length开始,这超出了范围。

为了使其正常工作,您需要从ar1.length-1开始,这是数组的最大索引。
这是因为数组在Java中是基于0的,如@Maroun Maroun的注释中所述。

关于java - 使用数组时代码中的错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25765532/

10-10 14:04