0

Java でプログラミングする方法を学び始めたばかりで、スキャナー入力に関して質問がありました。数値配列を作成するための入力をユーザーに求めるだけの小さなプログラムを作成しています。for ループ内の各ケースに while チェックを入れる代わりに、for ループを含む数値入力をチェックする方法があるかどうか疑問に思っていました。

同様に、私のコードに関するその他のコメントや提案は、私がやっていることを改善し、理解するのに役立ちます!

ありがとうございました!

編集:プログラムを実行する「メイン」クラスからこのクラスを呼び出しています。

import java.util.Scanner; //Import the use of the Java Scanner

public class ArrayBuild { // Open Application

    private static Scanner input;

    public Double[] anArray;

    public static int arrayCount = 0;

    public ArrayBuild() { // Constructor for ArrayBuild object

        input = new Scanner(System.in);

        arrayCount++;

        System.out.println("This will be Array: " + arrayCount);

        // Array Size Declaration
        System.out.println("Enter Array Size: ");
        while (!input.hasNextInt()) {
            System.out.println("Please enter an integer for Array size!");
            input.next();
        }
        int n = input.nextInt();
        anArray = new Double[n]; // Create 'anArray' of size n
        //

        for (int i = 0; i < n; i++) { // Begin For Loop

            if (i == 0) {
                System.out.println("Enter First Number: ");
                while (!input.hasNextDouble()) {
                    System.out.println("Please enter a number for array data!");
                    input.next();
                }
                Double D = input.nextDouble();
                anArray[i] = D;
            }

            else if (i > 0 && i < (n - 1)) {
                System.out.println("Enter Next Number: \n");
                while (!input.hasNextDouble()) {
                    System.out.println("Please enter a number for array data!");
                    input.next();
                }
                Double D = input.nextDouble();
                anArray[i] = D;
            }

            else if (i == (n - 1)) {
                System.out.println("Enter Final Number: ");
                while (!input.hasNextDouble()) {
                    System.out.println("Please enter a number for array data!");
                    input.next();
                }
                Double D = input.nextDouble();
                anArray[i] = D;
            }
        } // End For Loop
    }
} // Close Class
4

1 に答える 1