java - 使用数组时代码出错

标签 java arrays

喂! 线程“主”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

Exception in thread "main" 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/

相关文章:

c - 当在c中输入空行时如何使此代码中的循环停止

javascript - 如何在 JavaScript 中将 object.key 添加到现有数组?

java - 需要使用 JavaFX 在 HBox 中对图像进行动画处理的帮助

arrays - 搜索重复元素数组

Java 6 - 如何使 JWindow 透明?

java - 为什么构造函数什么都不返回?或者它返回一些东西?

java - 调用反射Class.getMethod时出现异常

c - 在C中复制2D数组的内容

java - ResultSet next() 性能极慢

java - Nimbus L&F - 更改进度条的背景颜色