首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

For语句出现的有关问题,求指点,多谢

2012-08-03 
For语句出现的问题,求指点,谢谢用eclipse编译代码如下:public class intArray{public static void main(St

For语句出现的问题,求指点,谢谢
用eclipse编译
代码如下:

public class intArray 
{

public static void main(String[] args) 
{
int arrayD[];
arrayD=new int[4];
for(int i=0;1<5;i++)
{
arrayD[i]=i+96;
System.out.println("arrayD["+i+"]="+arrayD[i]);
}/*arrayD[0]=11;
arrayD[1]=12;
arrayD[2]=13;
arrayD[3]=14;
for(int i=0;1<5;i++)
{
System.out.println("arrayD["+i+"]="+arrayD[i]);
}*/
}
}
第一个for循环运行后会出现异常,如下:
arrayD[0]=96
arrayD[1]=97
arrayD[2]=98
arrayD[3]=99
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at intArray.main(intArray.java:11)
提示在11行有问题,请问是什么原因
还有就是在第一个for循环后面增加语句,会提示“不可达代码”这是为什么?

第二个for循环,把第一个for循环语句给注释掉之后,运行第二for循环
代码如下:

public class intArray 
{

public static void main(String[] args) 
{
int arrayD[];
arrayD=new int[4];
/*for(int i=0;1<5;i++)
{
arrayD[i]=i+96;
System.out.println("arrayD["+i+"]="+arrayD[i]);
}*/
arrayD[0]=11;
arrayD[1]=12;
arrayD[2]=13;
arrayD[3]=14;
for(int i=0;1<5;i++)
{
System.out.println("arrayD["+i+"]="+arrayD[i]);
}}
}
运行结果如下:
arrayD[0]=11
arrayD[1]=12
arrayD[2]=13
arrayD[3]=14
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at intArray.main(intArray.java:20)
如果要在这个for循环后面增加代码也会提示“不可达代码”

通过两段对比,对数组赋值,应该是没有问题,而是出在for循环使用上,请各位给指点下,谢谢。(public class 之前有一个空白行)


[解决办法]
這個問題是索引超出了,你的長度總共都只有4,可是你的FOR執行了5次,應該為for(int i = 0 ; i < 4 ; i++)

不過一般都是這樣寫的for(int i = 0 ; i < arrayD.length ; i++)
[解决办法]
for(int i=0;1<arrayD.length;i++)
{
arrayD[i]=i+96;
System.out.println("arrayD["+i+"]="+arrayD[i]);
}

因为你的arrayD.length = 4 ,所以你的下标只能是 0 1 2 3,如果小于5 ,那么下标为 0 1 2 3 4,会越界的
[解决办法]

探讨
這個問題是索引超出了,你的長度總共都只有4,可是你的FOR執行了5次,應該為for(int i = 0 ; i < 4 ; i++)

不過一般都是這樣寫的for(int i = 0 ; i < arrayD.length ; i++)

热点排行