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

java问题 高手快来看看
public class Runtime_02 {
public static void main(String[] args) {
int a[] = new int[5];
for (int i = 0; i < 10; i++) {
a[i] = i + 1;
System.out.print(" " + a[i]);
}
}
}


这个简单的程序在eclipse中运行提示:
 1 2 3 4 5java.lang.ArrayIndexOutOfBoundsException: 5
at four.four_one.Runtime_02.main(Runtime_02.java:7)
Exception in thread "main" 

这是什么原因啊?

------解决方案--------------------
new int[5];数组长度只有5位。

从0开始,你a[5]到a[9]会报ArrayIndexOutOfBoundsException
------解决方案--------------------
int a[] = new int[5];
自己看int[5]

循环里有几个呢?
for (int i = 0; i < 10; i++) 

------解决方案--------------------
你初始化设定 数组大小是5
后面运行都到10了,肯定要越界啊
------解决方案--------------------
探讨

new int[5];数组长度只有5位。

从0开始,你a[5]到a[9]会报ArrayIndexOutOfBoundsException

------解决方案--------------------
很好的资源。大学分享。http://download.csdn.net/detail/sbvfhp/3831104
------解决方案--------------------
很好的资源。大学分享。http://download.csdn.net/detail/sbvfhp/3831104
------解决方案--------------------
明显数组越界么?就没有a[5]以上的数组
------解决方案--------------------
可可甜同学,你的数组越界了。
public static void main(String[] args) {
int a[] = new int[5];
for (int i = 0; i < 5; i++) {
a[i] = i + 1;
System.out.print(" " + a[i]);
}
}
------解决方案--------------------
数组下标越界

你循环的I范围太大了
------解决方案--------------------
你定义的数组a的长度是5
而你在
for (int i = 0; i < 10; i++) {
a[i] = i + 1;
System.out.print(" " + a[i]);
}
为它赋值的时候,在a[0]=0+1;a[1]=1+1;a[2]=2+1;a[3]=3+1;a[4]=4+1;这几个赋值都不会出现错误,当从a[5]这里时便出错误了!
因为你定义的是5个长度,那只能是a[0]-a[4]
所以会数组越界