原程序:
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时候会发生越界
谢谢您的帮助。