当我编码时,我没有看到任何错误,但在编译时>>给我错误>>这有什么不对?
public static void main (String args []){
int arr[] = {20 , 30 ,40 , 50 , 60 ,200 };
int searchKey = 20 ;
for (int i = 0 ; i < arr.length ; i++ ){
if (arr[i]== searchKey){
System.out.println(searchKey + "found");
for(int z = i ; z < arr.length ;z++){
arr[z] = arr[z+1];
}
for(int k=0 ; k<arr.length ; k++)
System.out.print(arr[k] + " ");
break;
}
else if (i == (arr.length-1) ) {
System.out.print(searchKey+ " not found");
break;
}
}
}
答案 0 :(得分:0)
使用此for循环,您可以进入java.lang.ArrayIndexOutOfBoundsException
。取代
for(int z = i ; z < arr.length ;z++)
使用arr.length-1
代替arr.length
:
for(int z = i ; z < arr.length-1 ;z++)
答案 1 :(得分:0)
我可以看到你会得到一个超出范围的例外 与
for(int z = i ; z < arr.length ;z++) {
arr[z] = arr[z+1];
}
尝试通过
减少循环for(int z = i ; z < arr.length -1 ;z++)