我刚刚开始学习Java(我也是一名C#.NET程序员)。我正在尝试获取多个用户输入并将它们添加到数组中。在此之后,我从给定的值计算平均值。
出于某种原因,BlueJ将尝试永远运行我的Java程序。意思是,它将继续显示进度条,不会打开任何控制台窗口。
我不确定我的代码或BlueJ是否有问题,因为我之前从未遇到过这样的问题。
这是我的代码:
import java.util.Scanner;
public class Problem22 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int inputs = 2;
int[] values = new int[3];
while (inputs > -1) {
values[inputs] = scanner.nextInt();
inputs--;
}
System.out.println(averageValue(values));
}
private static int averageValue(int[] values) {
int sum = 0;
for (int i : values) {
sum += i;
}
return (sum / values.length);
}
}
请帮我尝试寻找解决方案。
答案 0 :(得分:4)
答案 1 :(得分:1)
您的代码在Eclipse中为我工作,但我必须意识到我应该做的事情,输入三个整数。
通常最好提示用户输入。这可能是BlueJ中的一个错误,但在要求输入之前必须输出提示并不是太糟糕。这通常是一件好事。
使用提示链接到我的代码版本:
https://gist.github.com/kaydell/6552282
我相信不提示输入的唯一原因是你是从文件或其他东西读取输入。当您的程序与用户交互时,您的程序应提示用户输入。
答案 2 :(得分:0)
代码在IntelliJ IDEA中为我编译得很好,并且运行正常。所以我认为这是一个BlueJ错误。
以下是运行后输入和输出的示例(在每个输入行后按Enter键)
3
4
5
4
(这意味着你的代码正常工作,4是3,4,5的平均值......)
您使用的是哪个版本的BlueJ?我假设重启到BlueJ,甚至你的机器都没有用?
答案 3 :(得分:0)
终端窗口仅在有输出时打开。该程序仅询问输入。因此,终端窗口不会打开。用以下内容替换您的代码段:
`while (inputs > -1)
{
System.out.println("Input number - "+inputs);
values[inputs] = scanner.nextInt();
inputs--;
}`
我希望你能看到终端窗口。