遍历数组的所有元素时出现ArrayIndexOutOfBoundsException

如何处理此异常“ ArrayIndexOutOfBoundsException”,我的代码是:创建一个长度为64的数组,然后初始化每个索引,然后打印索引以确保填满所有索引,但它最多打印63个,然后给出异常!任何的想法


    public static void main(String [] arg) {

    int [] a=new int [64];

    for(int i=1;i<=a.length;i++){

        a[i]=i;

        System.out.println(i);

    }


}

Java 


Smart猫小萌
浏览 495回答 3
3回答

莫回无

Java中的数组索引从开始0到array.length - 1。因此将循环更改为for(int i=0;i<a.length;i++)

动漫人物

参见JLS-Arrays:如果一个数组有n个分量,我们说n是数组的长度;使用0到n-1(含)之间的整数索引来引用数组的组成部分。所以你必须遍历 [0,length()-1]for(int i=0;i<a.length;i++) {&nbsp; &nbsp; a[i]=i+1;&nbsp; //add +1, because you want the content to be 1..64&nbsp; &nbsp; System.out.println(a[i]);}

桃花长相依

需要完整的解释吗?读这个数组的索引始终始于0。因此,当数组中有64个元素时,它们的索引将来自0 to 63。如果要访问第64个元素,则必须通过进行a[63]。现在,如果我们看看你的代码,那么你写你的条件是for(int i=1;i<=a.length;i++)在这里a.length将返回这是64数组的实际长度。这里发生了两件事:当您从1开始索引时,即i=1因此,您正在跳过数组中位于0th索引处的第一个元素。最后,它试图访问a[64]元素,该65th元素将成为数组的元素。但是您的数组仅包含64个元素。这样你就得到了ArrayIndexOutOfBoundsException。使用for循环迭代数组的正确方法是:for(int i=0;i < a.length;i++)索引从0开始到< array.length。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java