Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 终止用户输入确定的扫描仪?_Java_Input_Java.util.scanner - Fatal编程技术网

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

Java 终止用户输入确定的扫描仪?,java,input,java.util.scanner,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 : ");

我想知道是否有人能解释为什么扫描仪一直在等待输入?在代码块执行之前,我必须停止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);
}

如果您希望程序只接受X个数字,那么可以使用一个计数器,在执行X次之后中断while循环。或者,您也可以使用for循环来简化操作


您还可以在eclipse中使用Ctrl+Z来阻止console等待输入。

解决此问题的最简单方法是:

  • 通过组合Ctrl+z(如果我没有错的话,在UNIX中输入Ctrl+d)输入“文件结束”标记
另一种方法是使用百分位数来完成
循环,而
循环:

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
时,输入将完成,当然您可以更改此值

注意:

  • 如果您希望输入任何整数(包括负数和外显值),则最后一种方法将不起作用