ホームページ > Java > &#&チュートリアル > Java のスキャナーで無効な整数入力を適切に処理する方法

Java のスキャナーで無効な整数入力を適切に処理する方法

DDD
リリース: 2024-12-18 07:07:10
オリジナル
239 人が閲覧しました

How to Gracefully Handle Invalid Integer Input with Java's Scanner?

スキャナーを使用して無効な入力を処理する方法

ユーザー入力にスキャナーを使用している場合、数字以外の文字などの無効な入力を処理するのは次のとおりです。プログラムの堅牢性にとって重要です。この問題を処理する解決策を検討してみましょう。

次のコード スニペットを考えてみましょう:

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 つの制限があります。

  1. 数値以外の入力はチェックされないため、ユーザーが数値の代わりに文字を入力するとプログラムがクラッシュします。
  2. while 条件が常に true であるため、num2 に有効な入力が入力された後でもループは継続します。

これらの問題に対処するには、 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート