RangeFinder程序上的ArrayIndexOutOfBoundsExecption

问题描述 投票:0回答:1

我正在发布的程序应该使用户创建一个数组,然后向其中添加整数值。

程序将调用一个方法来找到数组的范围,然后打印返回的值以及打印数组。

但是,当我尝试运行它时,我得到了ArrayIndexOutOfBoundsExecption

`

import java.util。*;公共类RangeFinder {

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;
  }

}`

java eclipse indexoutofboundsexception
1个回答
0
投票

这是在数组范围之外选择:

int largest = testArray[array.length];

例如,如果10数组的长度,则索引从09。尝试选择项目testArray[10]是错误的。您要从长度中减去1以获得最后一个元素:

int largest = testArray[array.length - 1];
© www.soinside.com 2019 - 2024. All rights reserved.