ホームページ >Java >&#&チュートリアル >Java のスキャナーで無効な整数入力を処理するときに無限ループを防ぐ方法は?

Java のスキャナーで無効な整数入力を処理するときに無限ループを防ぐ方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-11 17:08:18282ブラウズ

How to Prevent Infinite Loops When Handling Invalid Integer Input with Java's Scanner?

InputMismatchException による try/catch のループ問題

try/catch ブロックと InputMismatchException を使用してユーザー入力を処理しようとすると、次のような問題が発生する可能性があります。入力が整数でない場合は無限ループになります。これを解決するには、必ず next() を呼び出して無効な入力を超えてスキャナを進めます。

catch (Exception e) {
    System.out.println("Error!");
    input.next(); // Advance past invalid input
}

さらに、hasNextInt() を使用して、読み取り前に有効な整数入力をチェックすることをお勧めします。

while (bError) {
    if (scanner.hasNextInt())
        n1 = scanner.nextInt();
    else {
        scanner.next(); // Advance past invalid input
        continue;
    }
    // Repeat for n2
}

このアプローチにより、スキャナーは整数以外の入力をスキップし、有効な値のみを使用して続行するため、例外の必要がなくなります。取り扱い。

以上がJava のスキャナーで無効な整数入力を処理するときに無限ループを防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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