Java Scanner hasNext()不';不要返回false

Java Scanner hasNext()不';不要返回false,java,java.util.scanner,Java,Java.util.scanner,我正在尝试连续读取用户输入,直到用户退出。我只是通过键入'quit'来测试它,但console.hasNext()似乎没有返回false。实际上,程序似乎在第7行(hasNext()行)被阻塞。有什么想法吗 boolean bool = true; while (bool) { System.out.println("Type 'quit':"); Scanner console = new Scanner(System.in);

我正在尝试连续读取用户输入,直到用户退出。我只是通过键入'quit'来测试它,但console.hasNext()似乎没有返回false。实际上,程序似乎在第7行(hasNext()行)被阻塞。有什么想法吗

    boolean bool = true;
    while (bool) {
        System.out.println("Type 'quit':");
        Scanner console = new Scanner(System.in);
        if (console.next().equals("quit")) {
            System.out.println("You typed quit");
            System.out.println("check: " + console.hasNext()); // This line doesnt print
            bool = false;
        }
    }

如果您的
扫描仪
在中声明为
System.in,它将在
中询问
System.in是否有下一个要接收的值。类中的
将等待用户输入内容,然后返回true

保留
hasNext()
用于文件等输入大小固定的对象。这样,当
Scanner
查询文件时,它有一个明确的
hasNext()

相反,我建议将下一个值作为字符串抓取,然后检查它是否匹配整数格式。如果是,则转换它,否则,按您喜欢的方式处理它