【发布时间】:2018-07-13 05:43:16
【问题描述】:
我正在为课堂做一个小的额外学分作业。基本上,用户输入 5 个数字,然后给出平均值。我有一个 if 语句来检查数组长度是否大于 5,如果是,则关闭程序。
但是,程序似乎以前五个给定数字执行,而不是停止。我不确定我忽略了什么
public static double[] getNumbers() {
Scanner input = new Scanner(System.in);
double[] numbers = new double[5];
System.out.print("Enter integers: ");
for (int i = 0; i < 5; ++i) {
numbers[i] = input.nextDouble();
if (numbers[i] == 999) {
System.exit(0);
}
}
return numbers;
}
public static double[] getAverage(double[] numbers) {
double[] total = new double[1];
double[] average = new double[1];
for (int i = 0; i < 5; ++i) {
total[0] = total[0] + numbers[i];
}
average[0] = total[0] / numbers.length;
return average;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double[] numbers;
double average = 0;
while (true) {
System.out.println("Enter 5 integers, for example: 10 20 50 84 73");
numbers = getNumbers();
if (numbers.length > 5) {
System.exit(0);
}
average = numbers[0];
System.out.println("Average is: " + average);
}
}
}
【问题讨论】:
-
你的数组长度永远不能超过5
-
输入 999 是否要退出接受号码?如果是这样,无论如何,您都无法返回大小为 5 的数组。 System.exit(0) 不是你想做的,我不认为。相反,您可以通过中断来跳出循环;而是在那里声明。代码在编写时真的不会做任何事情。您需要从 main 方法调用 getNumbers() 。你试过运行它了吗?
-
我的错,我还忘了提到,如果输入的数字是 999,我确实希望它结束。我运行了它,它会打印出前五个数字的平均值。我现在看到数组长度永远不会超过 5,因为我将它设置为最大值 5。
标签: java arrays if-statement