为什么编译器不接受数组呢?

时间:2015-03-11 09:52:54

标签: java arrays

这是最简单的数组,我甚至无法使用它!我的代码中是否缺少某些内容?或者我的编译器有问题吗?

代码:

public class example {

    public static void main(String[] args){
        int[] aryNums = new int[6];
        aryNums[0] = 10;
        aryNums[1] = 20;
        aryNums[2] = 30;
        aryNums[3] = 40;
        aryNums[4] = 50;
        aryNums[5] = 60;
        aryNums[6] = 70;
        System.out.println(aryNums[2]);
    }
} 

运行此代码后,我从编译器中得到以下消息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at example.main(example.java:12)

我运行jre7,我使用的编译器/程序是eclipse lunar SR2(4.4.2)。我曾经一度回到Java,但我刚回到Java,所以我不知道我的代码是否正确。

由于

5 个答案:

答案 0 :(得分:1)

如果算上它,你可以对数组的7个部分进行处理,但是你的数组定义为6,从索引0-5开始。这导致从aryNums[6]分配引发错误,因为它高于数组的最大元素。

答案 1 :(得分:0)

你的数组大小为6(0到5),你正试图填补第六个不存在的情况。

答案 2 :(得分:0)

你的数组需要有7个元素,而不是6个。注意你在一个(没有冒犯的)玩具示例中报告了一个运行时错误 - 这种组合通常会使编译错误极不可能。< / p>

答案 3 :(得分:0)

你的数组有6个位置,因为它从0开始,给你0到5. 6超出范围。

答案 4 :(得分:0)

您将数组调整为6并尝试添加7个元素。