我是一名初学程序员,正在为在线课程开展此练习。我应该编写一个程序,从用户那里取十个数字,找到最小的数字,并打印回来。我已经看过其他几个类似的问题,但找不到任何对我有用的东西。这是我到目前为止所没有的错误或任何内容。我无法弄清楚为什么它给了我这个:
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;
}
}
答案 0 :(得分:5)
数组索引从0
开始,因此您没有元素numbers[10];
,而10th
元素由以下表示:
double min = numbers[0];
// ^-------//this is the 1st element
double min = numbers[9];
// ^-------//this is the 10th element