スキャナーを使用して無効な入力を処理する方法
ユーザー入力にスキャナーを使用している場合、数字以外の文字などの無効な入力を処理するのは次のとおりです。プログラムの堅牢性にとって重要です。この問題を処理する解決策を検討してみましょう。
次のコード スニペットを考えてみましょう:
Scanner kb = new Scanner(System.in); int num1; int num2 = 0; System.out.print("Enter number 1: "); num1 = kb.nextInt(); while (num2 < num1) { System.out.print("Enter number 2: "); num2 = kb.nextInt(); }
このコードは、ユーザーから 2 つの整数を取得することを目的としており、2 番目の数値 (num2) が最初の (num1) より大きい。ただし、これには 2 つの制限があります。
これらの問題に対処するには、 Scanner.hasNextInt() メソッド。入力内の次のトークンが整数として解釈できるかどうかを判断します。
次のコード スニペットには、これらの改善が組み込まれています。
Scanner sc = new Scanner(System.in); System.out.print("Enter number 1: "); while (!sc.hasNextInt()) sc.next(); int num1 = sc.nextInt(); int num2; System.out.print("Enter number 2: "); do { while (!sc.hasNextInt()) sc.next(); num2 = sc.nextInt(); } while (num2 < num1); System.out.println(num1 + " " + num2);
有効かどうかを確認することにより、 hasNextInt() を使用して入力し、無効な文字を無視すると、プログラムは非数値入力を適切に処理します。さらに、do-while ループは 2 番目の数値が最初の数値より大きいことを保証し、有効な入力が取得された後にループが継続するのを防ぎます。
以上がJava のスキャナーで無効な整数入力を適切に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。