我写了几个函数,它们都给了我同样的错误:
线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:索引 4 超出长度 4 的范围
我不明白问题是什么,我已经搜索了互联网,但我仍然不明白。
有问题的代码是这样的:
import java.util.Arrays;
public class examen2019 {
static int[] imagenEspejo(int[] arr){
int i;
int[] result = new int[arr.length*2];
for(i=0;i<=arr.length*2;i++){
if( i<=arr.length){
result[i]= arr[i];
}else{
result[i]= arr[i-arr.length];
}
}return result;
}
static boolean alMenosDos(int[] arr, int n){
int i;
int j = 0;
boolean result= false;
for(i=0;i<=arr.length;i++){
if (n== arr[i]){
j++;
}
if (j>= 2){
result= true;
}
}return result;
}
public static void main(String[] args){
int[] arr={1,2,4,5};
System.out.println(imagenEspejo(arr));
}
}
引发此错误表示已访问具有非法索引的数组。索引为负数或大于或等于数组或数组的大小。
例如:您有一个包含 4 个元素的数组,并且您尝试访问索引 4,这将导致错误,因为数组从索引 0 开始,所以
因此,当您启动一个 for 循环并从位置 0 开始计数时,您必须验证它是否小于数组的长度。
您的代码只需要调整循环。