JavaでScannerを使用して配列を入力する方法とエラーの処理


まず、以下のコード例を使用してScannerを使った配列の入力方法を紹介します。

import java.util.Scanner;
public class ArrayInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("配列のサイズを入力してください: ");
        int size = scanner.nextInt();
        int[] array = new int[size];
        System.out.println("配列の要素を入力してください:");
        for (int i = 0; i < size; i++) {
            System.out.print("要素 " + (i + 1) + ": ");
            array[i] = scanner.nextInt();
        }
        System.out.println("入力された配列は以下の通りです:");
        for (int i = 0; i < size; i++) {
            System.out.println("要素 " + (i + 1) + ": " + array[i]);
        }
    }
}

上記のコードでは、まずScannerクラスを使ってユーザーからの入力を受け取ります。Scanner.nextInt()メソッドを使用して、配列のサイズを入力します。次に、入力されたサイズを使ってint型の配列を作成します。

その後、forループを使用して、ユーザーに各要素の値を入力してもらいます。Scanner.nextInt()メソッドを使用して、ユーザーが入力した整数値を配列の各要素に格納します。

最後に、入力された配列を表示します。forループを使用して、各要素の値を表示します。

以上が基本的な配列の入力方法です。しかし、ユーザーの入力ミスや予期しないエラーが発生する可能性があります。例えば、ユーザーが整数値以外の入力を行った場合や、配列のサイズが負の値であった場合などです。

これらのエラーに対処するためには、エラー処理を追加する必要があります。以下に、エラー処理を追加したコード例を示します。

import java.util.InputMismatchException;
import java.util.Scanner;
public class ArrayInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int size = 0;
        boolean validSize = false;
        while (!validSize) {
            try {
                System.out.print("配列のサイズを入力してください: ");
                size = scanner.nextInt();
                validSize = true;
            } catch (InputMismatchException e) {
                System.out.println("正しい形式で整数値を入力してください。");
                scanner.nextLine();
            }
        }
        int[] array = new int[size];
        System.out.println("配列の要素を入力してください:");
        for (int i = 0; i < size; i++) {
            boolean validElement = false;
            while (!validElement) {
                try {
                    System.out.print("要素 " + (i + 1) + ": ");
                    array[i] = scanner.nextInt();
                    validElement = true;
                } catch (InputMismatchException e) {
                    System.out.println("正しい形式で整数値を入力してください。");
                    scanner.nextLine();
                }
            }
        }
        System.out.println("入力された配列は以下の通りです:");
        for (int i = 0; i < size; i++) {
            System.out.println("要素 " + (i + 1) + ": " + array[i]);
        }
    }
}

上記のコードでは、try-catchブロックを使用してInputMismatchExceptionをキャッチし、ユーザーが整数以外の入力を行った場合にエラーメッセージを表示しています。また、scanner.nextLine()を使用して入力バッファをクリアしています。

これにより、ユーザーが正しい形式で整数値を入力するまで繰り返し入力を求めることができます。

以上が、JavaでScannerを使用して配列を入力する方法とエラーの処理方法の例です。