ホームページ >Java >&#&チュートリアル >Java でスキャナーを使用して整数入力を検証し、無効な入力を処理する方法
スキャナーを使用して整数入力を検証し、無効な入力を処理する方法
Java でユーザー入力を操作する場合、数値データの妥当性を確認するプログラムの堅牢性にとって重要です。この記事では、Scanner クラスを使用して有効な整数入力を強制し、数字以外の文字などの無効な入力を適切に処理する方法を説明します。
問題:
次の点を考慮してください。コード:
Scanner kb = new Scanner(System.in); int num1; int num2 = 0; System.out.print("Enter number 1: "); num1 = kb.nextInt(); while(num2 <p>このコードは、ユーザーに 2 つの整数の入力を促し、num2 が大きくなるようにすることを目的としています。 num1よりも。ただし、次の 2 つの課題に直面しています。</p><ol> <li>ユーザー入力が実際に整数であるかどうかを検証しません。これにより、ユーザーが数字以外の文字を入力したときに実行時例外が発生する可能性があります。</li> <li>ユーザーが num1 より小さい値として num2 を入力した場合は処理されません。</li> </ol><p> <strong>解決策:</strong></p><p>これらの課題に対処するには、スキャナーのhasNextInt() メソッド。このメソッドは、入力ストリーム内の次のトークンが整数として解釈できるかどうかを示すブール値を返します。 false が返された場合は、入力が無効であることがわかり、ユーザーに再試行を求めることができます。</p><p>コードの改良版を次に示します。</p><pre class="brush:php;toolbar:false">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 <p>このコードでは、次のことを確認します。有効な整数を読み取る前に、hasNextInt() を使用してください。入力が無効な場合は、sc.next() を使用して入力を消費し、ユーザーに再度プロンプトを表示します。</p><p><strong>利点:</strong></p>
関連質問:
以上がJava でスキャナーを使用して整数入力を検証し、無効な入力を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。