3

ユーザーが終了するまで、ユーザーからの入力を継続的に読み取ろうとしています。「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;
        }
    }
4

1 に答える 1

13

yourScannerが として宣言されている場合、次に受け取る値があるかどうかSystem.inを尋ねます。System.inクラスは、ユーザーが何かを入力するのinを待ってから、true を返します。

hasNext()入力サイズが固定されているファイルなどのために予約します。そうScannerすれば、ファイルを照会すると、明確なhasNext().

代わりに、次の値を文字列として取得し、整数形式と一致するかどうかを確認することをお勧めします。そうであれば、それを変換し、そうでなければ、好きなように処理してください。

于 2013-04-06T04:35:24.003 に答える