ホームページ >Java >&#&チュートリアル >Java のスキャナ クラスを使用すると「NoSuchElementException」が発生するのはなぜですか?

Java のスキャナ クラスを使用すると「NoSuchElementException」が発生するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-04 02:45:11835ブラウズ

Why Am I Getting a

Java.Util.Scanner の「NoSuchElementException」のトラブルシューティング

Java の「NoSuchElementException」エラーは、通常、次からの読み取りを試みることによって発生します。 Scanner クラスを使用した、閉じられたまたは空の入力ソース。あなたの場合、この例外は、ユーザーから 2 番目の整数 (コードの 17 行目) を読み取ろうとしたときに発生しています。

この問題をデバッグするには、Scanner クラスを詳しく調べてみましょう:

Scanner クラス

Scanner クラスを使用すると、ソースからテキスト データを読み取ることができます。 System.in (コンソール)。そのメソッドを使用すると、ソースから整数 (nextInt()) などのさまざまなデータ型を抽出できます。

コード内で、コンソールから入力を読み取るための「input」という名前の Scanner オブジェクトを作成します。次に、変数number1とnumber2に2つの整数値を読み取ろうとします。

エラー分析

「NoSuchElementException」エラーは、Scanner オブジェクトが整数の検索を期待していることを示しています。入力の次の行にありますが、見つかりません。これはいくつかの理由で発生する可能性があります:

  • 整数入力なし: コンソールの別々の行に実際に 2 つの整数を入力していることを確認してください。
  • 間違った入力タイプ: 提供している入力が次のタイプであることを再確認してくださいint.
  • スキャナーが閉じています: 入力を読み取る前に、スキャナーが閉じていないことを確認してください。

提案されたソリューション

この問題を解決するには、読み取りを試みる前に、スキャナーに読み取る別の整数があることを確認するチェックを追加することを検討してください。抽出するには:

if (input.hasNextInt()) {
  number2 = input.nextInt(); 
} else {
  // Handle the case where no integer is found
  // (e.g., display an error message or set number2 to a default value)
}

このチェックを組み込むことにより、読み取りを試行する前に別の利用可能な整数があるかどうかを判断できます。何もない場合は、エラー メッセージを表示するか、number2 をデフォルト値に設定するなど、適切なアクションを実行できます。

以上がJava のスキャナ クラスを使用すると「NoSuchElementException」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。