public class TestArray_1 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
for(int i=0; i<=a.length;i++){
System.out.print(a[i]+"");
}
}
}12345Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at TestArray_1.main(TestArray_1.java:5) (编译器显示的结果

为什么我运行这个程序,编译器会显示这些东西给我,我在尚学堂的视频上看到的他不是用这个编译器运行的,而是直接在电脑里面打的命令提示符,他显示的结果不是这样的。

解决方案 »

  1.   

    数组下标越界
    因为数组下标是从0开始的,所以循环是小于数组长度就行了,不用等于for(int i=0; i<a.length;i++){
      

  2.   

    public class TestArray_1 {
    public static void main(String[] args) {
    int[] a = {1,2,3,4,5};
    //for(int i=0; i<=a.length;i++){  多了个等号,导致数组越界
    for(int i=0; i<a.length;i++){System.out.print(a[i]+"");
    }
    }
    }
      

  3.   


    楼上正解,你那里多了个“=” 这样当然i=5的时候,
    就越界了,所以会报一个.ArrayIndexOutOfBoundsException
      

  4.   

    你多了个等号(int i=0; i<=a.length;i++)
    a.length是指里面的个数。有五个。而数组下标是从0开始的。所以下标为5时数组下标越界了
      

  5.   

    数组越界错误,for(int i=0; i<=a.length;i++) 改成for(int i=0; i<a.length;i++)
      

  6.   

    你非要这样也可以在length后面-1就可以了!我也是新手,就是在不断的解决问题中成长起来的。不要怕出错,问题出越多,成长越快!
      

  7.   

    楼上各位已经解释为什么出错了,我再解释一下其他东西1、这个是运行时异常,不是编译器显示给你的,编译是没有问题2、"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5"这句话的意思是,你在访问下标为5的数组元素时发生了数组越界的异常3、"at TestArray_1.main(TestArray_1.java:5)"这句话告诉你,这个异常发生在你源文件的第5行,方便你调试的
      

  8.   

    i<=a.length这个条件错了,数组下标最高就是a.length-1,所以不能用=
      

  9.   

    public class a {
    public static void main(String []aa){
    int[] a = {1,2,3,4,5};
           for(int i=0; i<a.length;i++)
                   {
                   System.out.print(a[i]+"");
    }
    }
    }
    显示的结果是12345 
      

  10.   

    这样的意思是数组下标越界,你定义的数组是从a[0]-a[4] 
    应将for(int i=0; i<=a.length;i++) 改成for(int i=0; i<a.length;i++)