BlueJ正试图永远运行我的Java程序

时间:2013-09-13 01:36:15

标签: java bluej

我刚刚开始学习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);
  }
}

请帮我尝试寻找解决方案。

4 个答案:

答案 0 :(得分:4)

似乎在BlueJ中,您必须在请求输入之前提供输出。这是一个非常奇怪的错误。

更多信息:

http://www.bluej.org/help/faq.html#hangoninput

答案 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--;
 }`

我希望你能看到终端窗口。