原程序:
public class ArrayTest {
float scores []=null;
public void init()
{
scores = new float [5];
for (int i=0;i<=scores.length;i++)
scores[i]=(float) (Math.random()*100);
}
public void print()
{
for(int i=0;i<=scores.length;i++)
System.out.println(scores[i]);
}
public boolean copyArray(int []src,int []dest)
{
if(dest.length<src.length)
return false;
System.arraycopy(src,0,dest,0,src.length);
return true;
}
public static void main(String[] args){
ArrayTest at=new ArrayTest();
at.init();
at.print();
int[] src={1,3,5,6,7,8};
int[] dest=new int [6];
at.copyArray(src,dest);
for(float x:dest){
System.out.println("data of dest:"+x);
}
}
}
编译后显示:
F:\java>javac ArrayTest.java
F:\java>java ArrayTest
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at ArrayTest.init(ArrayTest.java:7)
at ArrayTest.main(ArrayTest.java:23)
F:\java>
for (int i=0;i<=scores.length;i++)数组越界了,应该是 for (int i=0;i<scores.length;i++)
谢谢大佬
要学习利用错误信息排错
谢谢
init里面for里的i不能等于数组的长度,i等于5时候会发生越界
谢谢您的帮助。