ホームページ >Java >&#&チュートリアル >スキャナーの nextInt() を使用すると NoSuchElementException が発生するのはなぜですか?
Scanner の nextInt() の失敗: NoSuchElementException について
Scanner の nextInt() メソッドを使用して整数を取得しようとすると、恐ろしいエラー: NoSuchElementException。これは、入力ストリームから取得できる整数がなくなったときに発生します。
原因を特定するために、コード スニペットを精査します。
Scanner s = new Scanner(System.in); int choice = s.nextInt(); // Error occurs here s.close();
nextInt() メソッドは、 integer は読み取りを待機していますが、この場合、整数が存在しない可能性があります。このエラーを防ぐには、Scanner が提供する hasNextXXXX() メソッドを利用します。これらのメソッドは、適切なデータ型が利用可能であることを検証し、入力が取得できる状態であることを確認します。
この特定のシナリオでは、hasNextInt():
Scanner s = new Scanner(System.in); int choice = 0; if (s.hasNextInt()) { choice = s.nextInt(); } s.close();hasNextInt() チェックは、nextInt() で整数を取得しようとする前に、整数が存在することを確認します。これにより、NoSuchElementException が発生する可能性がなくなります。したがって、Scanner の nextInt() メソッドを扱うときは、常に hasNextInt() を利用して、整数が消費されるのを待っていることを保証することを覚えておいてください。
以上がスキャナーの nextInt() を使用すると NoSuchElementException が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。