扫描器的hasNext()保持循环

时间:2016-05-13 17:34:47

标签: java java.util.scanner

我有这个代码,我想运行以解决需要三个用户输入的问题,我使用了Scanner类:

public static void main(String[] args) {
    int M = 0;
    int A = 0;
    Scanner input = new Scanner(System.in);
    System.out.println("Please, insert the normal dose in ml:");

    M = input.nextInt();

    System.out.println("Please, insert the set of experiments (3 integers per line, stop by 0 0 0):");
    try {
        while (input.hasNextInt()) {
            System.out.print(input.hasNext());
            int i = input.nextInt();
            A += i;
            System.out.println(A);
        }
    } catch (Exception x) {
        System.out.print(x.getMessage());
    }

    System.out.println("Loop ended");

}

奇怪的是input.hasNextInt()在插入三个值之后卡住了什么东西,看起来即使控制台中没有输入,它仍然会循环或某些东西,有些可以为我提供一些帮助?

1 个答案:

答案 0 :(得分:0)

那是因为input.hasNextInt()等待直到整数值可用。如果通知了字母数字值,它将返回false。

你必须定义另一种方法来打破while循环,可能还有一个计数器,或者像你的消息所说,检查3个值是否等于0。