一个很简单的1维数组程序报错

来源:百度知道 编辑:UC知道 时间:2024/06/18 05:25:31
import java.util.Arrays;
public class lei {
public static void main(String args[]){
int arr1[]=new int[]{1,2,3,4,5};

int arr2[]=Arrays.copyOfRange(arr1,0,3);
int i;

for(i=0;i<arr1.length;i++);{

System.out.print(arr1[i]);
}

System.out.println();

for(i=0;i<arr2.length;i++);{
System.out.print(arr2[i]);
}

}
}

错误是:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at lei.main(lei.java:11)

究竟是什么原因呢??

for(i=0;i<arr2.length;i++);{

for() 结束的地方没有 ;
正确的应该是这样的
for(i=0;i<arr2.length;i++){

copyOfRange
jdk如下:
public static boolean[] copyOfRange(boolean[] original,
int from,
int to)

错误原因是数组下标越界。
for(i=0;i<arr1.length;i++)
for(i=0;i<arr2.length;i++)
这2句后面的分号去掉.