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 5
java.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]
所以会数组越界