ホームページ > Java > &#&チュートリアル > JavaでInputMismatchExceptionが発生する原因とその修正方法は何ですか?

JavaでInputMismatchExceptionが発生する原因とその修正方法は何ですか?

Susan Sarandon
リリース: 2024-11-07 21:29:02
オリジナル
1033 人が閲覧しました

What Causes an InputMismatchException in Java and How to Fix It?

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 サイトの他の関連記事を参照してください。

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