当前位置: 代码迷 >> J2SE >> 数组长度无法输出显示有关问题
  详细解决方案

数组长度无法输出显示有关问题

热度:39   发布时间:2016-04-24 00:42:01.0
数组长度无法输出显示问题?
本人是Java新手一只..
在看一本叫[从入门到精通Java]的书

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

我按照范例所写的代码在Eclipse SDK Version: 3.7.2
会出现
Java code
a[0] = 5a[1] = 6a[2] = 8Exception 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就结束了,所以超过了就报越界错误。
虽然书有写的好坏,但是对于新手来说,差不到哪里去。所以最关键的是坚持,一定要敲代码,反复看反复敲就学得会,你可以看看马士兵的视频吧。
  相关解决方案