ホームページ >Java >&#&チュートリアル >スキャナーの nextInt() を使用すると NoSuchElementException が発生するのはなぜですか?

スキャナーの nextInt() を使用すると NoSuchElementException が発生するのはなぜですか?

DDD
DDDオリジナル
2024-11-16 06:26:03432ブラウズ

Why Am I Getting a NoSuchElementException When Using Scanner's nextInt()?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。