NoSuchElementException Java.Util.Scanner の不満
「NoSuchElementException」エラーの発生は、特にあなたのような Java 初心者にとっては困惑する可能性があります。このエラーは、Scanner クラスが入力ストリームから次のトークンを取得できない場合に発生します。根本原因を明らかにするために特定のコードを詳しく調べてみましょう:
import java.util.Scanner; public class Addition { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number1; // first number to add int number2; // second number to add int sum; // sum of 1 & 2 // Problem: Reading input values without checking for input availability System.out.print("Enter First Integer: "); number1 = input.nextInt(); // Exception occurs here when no input is provided System.out.print("Enter Second Integer: "); number2 = input.nextInt(); // Exception occurs here if input is not available for this prompt sum = number1 + number2; // Addition occurs, assuming input values are available System.out.printf("Sum is %d\n", sum); // Displays the sum, if input is available } }
問題は、入力が利用可能かどうかを最初に確認せずに入力を読み取ろうとするコードにあります。ユーザーが入力を提供しないか、整数以外の値を入力した場合、input.nextInt() メソッドは「NoSuchElementException」を発生させます。
解決策:
この問題では、取得を試みる前に入力が利用可能かどうかを確認する必要があります。 it:
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle the case where no input is provided }
説明:
hasNextInt() メソッドは、入力ストリーム内の次のトークンが整数かどうかをチェックします。 true を返す場合、input.nextInt() メソッドを使用して整数を取得できます。それ以外の場合、コードは、number1 を 0 に設定する、またはエラー メッセージを表示するなど、状況を適切に処理できます。
このチェックを実装すると、コードは「NoSuchElementException」をスローすることがなくなり、期待どおりに動作するようになります。ユーザーは整数を入力し、その合計を計算します。
以上がJava スキャナーが NoSuchElementException をスローするのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。