日期:2014-05-20  浏览次数:20705 次

数组长度无法输出显示问题?
本人是Java新手一只..
在看一本叫[从入门到精通Java]的书

其中有一课题讲的是关于数组的..

我按照范例所写的代码在Eclipse SDK Version: 3.7.2
会出现
Java code
a[0] = 5
a[1] = 6
a[2] = 8
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    at TestJavayiweifuzhi.main(TestJavayiweifuzhi.java:12)

这样的错误

我的代码是


Java code
public class TestJavayiweifuzhi {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i ;
        int a[]={5,6,8};
        for(i=0;i<=a.length;i++)
            System.out.println("a["+i+"] = "+a[i]);
        System.out.println("数组的长度是"+a.length);
        

    }

}


另外 我只有一点点编程的基础 希望各位CSDN的大神推荐基本适合我看的Java书籍
感谢


------解决方案--------------------
for(i=0;i<=a.length;i++)

--> for(i=0;i<a.length;i++) 


数组的下标 是 : 0 ~ a.length -1 

Java code
package a;
public class Test0 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i ;
        int a[] = {5, 6, 8};
        for(i = 0; i < a.length; i++)
            System.out.println("a["+i+"] = "+a[i]);
        System.out.println("数组的长度是"+a.length);
        

    }

}

------解决方案--------------------
java.lang.ArrayIndexOutOfBoundsException: 数组越界
数组的范围 是0 到 length-1

int i ;
int a[]={5,6,8};
for(i=0;i<a.length;i++){
System.out.println("a["+i+"] = "+a[i]);
System.out.println("数组的长度是"+a.length);
}


------解决方案--------------------
for(i=0;i<=a.length;i++)
这里不是这样的
for(i=0;i<a.length;i++)
这样就好了 
数组是重0算的,length是1开始算所以你要小于length不能等于,当等于时就数组越界了,就是超出数组的范围了
------解决方案--------------------
多循环了一次。数组下标是从0开始,数组长度是3,你判断条件是小于等于数组长度,这样循环就要0、1、2、3四次了,但是其实这个数组只到2就结束了,所以超过了就报越界错误。
虽然书有写的好坏,但是对于新手来说,差不到哪里去。所以最关键的是坚持,一定要敲代码,反复看反复敲就学得会,你可以看看马士兵的视频吧。