查找数组中的最小值

时间:2017-05-25 20:52:13

标签: java arrays

我是一名初学程序员,正在为在线课程开展此练习。我应该编写一个程序,从用户那里取十个数字,找到最小的数字,并打印回来。我已经看过其他几个类似的问题,但找不到任何对我有用的东西。这是我到目前为止所没有的错误或任何内容。我无法弄清楚为什么它给了我这个:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    at Exercise6_9.min(Exercise6_9.java:41)
    at Exercise6_9.main(Exercise6_9.java:31)
输入10个号码后

。作为一个说明,我看过this question,它们不一样。我并不是在问我的错误是什么以及如何解决它,而是为什么当我的IDE在运行程序之前没有显示任何问题时,它会出现在我的示例中。

import java.util.Scanner;

public class Exercise6_9 {

    public static void main(String[] args) {

        double[] numbers = new double[10];
        Scanner input = new Scanner(System.in);
        System.out.println("Enter 10 numbers.");
        for (int i = 0; i < numbers.length; i++ ){
            numbers[i] = input.nextDouble();
        }
        min(numbers);
    }
    public static double min(double[] numbers){

        double min = numbers[10];
        for (int i=0;i<numbers.length;i++){
            if (numbers[i] < min){
                min = numbers[i];
                System.out.println(min);
            }
        }
        return min;
    }
}

1 个答案:

答案 0 :(得分:5)

数组索引从0开始,因此您没有元素numbers[10];,而10th元素由以下表示:

double min = numbers[0];
//                   ^-------//this is the 1st element

double min = numbers[9];
//                   ^-------//this is the 10th element