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