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,会越界的
[解决办法]