Javaにおけるfloatのスキャン方法とエラーの分析


  1. Scannerを使用した方法:

    import java.util.Scanner;
    public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
    
        System.out.print("float型の値を入力してください: ");
        float number = scanner.nextFloat();
    
        System.out.println("入力された値は: " + number);
    }
    }
  2. BufferedReaderとInputStreamReaderを使用した方法:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    public class Main {
    public static void main(String[] args) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    
        try {
            System.out.print("float型の値を入力してください: ");
            float number = Float.parseFloat(reader.readLine());
    
            System.out.println("入力された値は: " + number);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    }

エラー処理: floatのスキャン中に発生する可能性のあるエラーと、それに対処する方法を以下に示します。

  1. 入力がfloat型として解釈できない場合、InputMismatchExceptionがスローされます。この場合、try-catch文を使用して例外をキャッチし、ユーザーに正しい形式での入力を促すメッセージを表示します。
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        try {
            System.out.print("float型の値を入力してください: ");
            float number = scanner.nextFloat();

            System.out.println("入力された値は: " + number);
        } catch (InputMismatchException e) {
            System.out.println("正しい形式での値を入力してください。");
        }
    }
}
  1. 入力がfloat型の範囲を超える場合、NumberFormatExceptionがスローされます。この場合も、try-catch文を使用して例外をキャッチし、ユーザーに適切な範囲の値を入力するようにメッセージを表示します。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
    public static void main(String[] args) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        try {
            System.out.print("float型の値を入力してください: ");
            float number = Float.parseFloat(reader.readLine());

            if (number < Float.MIN_VALUE || number > Float.MAX_VALUE) {
                throw new NumberFormatException();
            }

            System.out.println("入力された値は: " + number);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (NumberFormatException e) {
            System.out.println("適切な範囲の値を入力してください。");
        }
    }
}

以上が、Javaでfloatのスキャン方法とエラー処理の例です。これらの方法を使用して、ユーザーが正しい形式と範囲で値を入力できるようにすることが重要です。