RangeFinder 程序上的 ArrayIndexOutOfBoundsExecption
ArrayIndexOutOfBoundsExecption on RangeFinder program
我发布的程序应该让用户创建一个数组,然后将整数值添加到其中。
程序将调用一个方法来查找数组的范围,然后在打印数组的同时打印返回值。
但是,当我尝试 运行 时收到 ArrayIndexOutOfBoundsExecption
`
进口java.util.*;
public class 测距仪 {
public static void main(String[] args) {
System.out.println("Please enter the length of your array: ");
Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
int[] userArray = new int[size];
for (int i = 0; i != size; i++) {
System.out.println("Please enter the number for your array[" + (i+1) + "]: ");
int temp = sc.nextInt();
userArray[i] = temp;
}
RangeFinder.range(userArray);
System.out.println();
System.out.println(Arrays.toString(userArray));
System.out.println(RangeFinder.range(userArray));
}
public static int range(int[] array) {
int[] testArray = array;
Arrays.sort(testArray);
int smallest = testArray[0];
int largest = testArray[array.length];
int range = largest - smallest;
return range;
}
}
`
这 select 超出了数组的范围:
int largest = testArray[array.length];
例如,如果数组的长度为10
,那么索引是从0
到9
。尝试 select 项 testArray[10]
是错误的。你想从长度中减去 1
得到最后一个元素:
int largest = testArray[array.length - 1];
我发布的程序应该让用户创建一个数组,然后将整数值添加到其中。
程序将调用一个方法来查找数组的范围,然后在打印数组的同时打印返回值。
但是,当我尝试 运行 时收到 ArrayIndexOutOfBoundsExecption
`
进口java.util.*; public class 测距仪 {
public static void main(String[] args) {
System.out.println("Please enter the length of your array: ");
Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
int[] userArray = new int[size];
for (int i = 0; i != size; i++) {
System.out.println("Please enter the number for your array[" + (i+1) + "]: ");
int temp = sc.nextInt();
userArray[i] = temp;
}
RangeFinder.range(userArray);
System.out.println();
System.out.println(Arrays.toString(userArray));
System.out.println(RangeFinder.range(userArray));
}
public static int range(int[] array) {
int[] testArray = array;
Arrays.sort(testArray);
int smallest = testArray[0];
int largest = testArray[array.length];
int range = largest - smallest;
return range;
}
} `
这 select 超出了数组的范围:
int largest = testArray[array.length];
例如,如果数组的长度为10
,那么索引是从0
到9
。尝试 select 项 testArray[10]
是错误的。你想从长度中减去 1
得到最后一个元素:
int largest = testArray[array.length - 1];