Java コードのInputMismatchException: 入力のトラブルシューティング
Java で Scanner クラスを使用する場合、入力処理中に予期しない例外が発生する可能性があります。よくあるエラーの 1 つは、入力された入力が予期されたデータ型と一致しない場合に発生する、InputMismatchException です。
次のコード スニペットを考えてみましょう:
public double checkValueWithin(int min, int max) { double num; Scanner reader = new Scanner(System.in); num = reader.nextDouble(); while (num < min || num > max) { System.out.print("Invalid. Re-enter number: "); num = reader.nextDouble(); } return num; }
および
public void askForMarks() { double marks[] = new double[student]; int index = 0; Scanner reader = new Scanner(System.in); while (index < student) { System.out.print("Please enter a mark (0..30): "); marks[index] = (double) checkValueWithin(0, 30); index++; } }
このコードをテストすると、不適切なデータ型が入力されたため、InputMismatchException が発生します。この問題は、小数点記号としてドット (.) を使用して double 値を入力しようとすると発生します。
解決策:
この問題を解決するには、カンマ ( ,) は、数値の小数部分を区切るためのドットではありません。たとえば、「1.2」と入力する代わりに、「1,2」と入力します。カンマは、Java の double データ型のデフォルトの小数点区切り文字です。
この簡単な変更を行うことで、コードが double 値を正しく受け入れ、InputMismatchException を回避できるようになります。
以上がJavaでInputMismatchExceptionが発生する原因とその修正方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。