终止用户输入确定扫描仪?

时间:2014-04-09 15:46:16

标签: java input java.util.scanner

我想知道是否有人可以解释为什么扫描仪会一直等待输入?我必须在代码块执行之前停止eclipse上的进程,我不确定扫描程序为什么一整天都在继续输入。我希望在输入X数量后按Enter键并执行代码。

public static void main(String[] args){
    Scanner aScanner = new Scanner(System.in);  
    int sum = 0;
    System.out.println("Enter Ints : ");         
    while(aScanner.hasNextInt()){
        sum += aScanner.nextInt(); 
    }       
    System.out.println(sum);
}

2 个答案:

答案 0 :(得分:0)

如果你想让程序只取X个数字,你可以有一个计数器并在执行X次后打破while循环。或者,您也可以使用for循环来简化操作。

你也可以在eclipse中使用Ctrl + Z来阻止控制台等待输入。

答案 1 :(得分:0)

最简单解决方法是:

  • 输入"文件末尾"标记,在UNIX中组合 Ctrl + z Ctrl + d ,如果我不是错)。

另一种方法是使用centinel值tu完成while循环:

Scanner aScanner = new Scanner(System.in);
int sum = 0, input = 0;

System.out.println("Enter Ints (-999 to finish input): ");
while ((input = aScanner.nextInt()) != -999) {
    sum += input;
}
System.out.println(sum);

因此当用户输入-999时输入将完成,当然您可以更改此值。

注意:

  • 如果您希望任何整数(包括底片和极值)作为输入,那么最后一种方法将无法奏效。