0

少し前に作成した推測ゲームにメソッドを追加する必要があります。メソッドは、入力した値を返す必要がありますが、ループを使用して、これら 2 つの値のいずれかが指定されるまで再入力を要求する必要があります。また、ユーザーが int ではなく単語を入力した場合は、数値を要求する必要があります。int の代わりに文字列を使用する必要があることはわかっています。私はこれを理解するのに苦労しています。これが私がこれまでに持っているものです:

import java.util.Random;

import java.util.Scanner;

class GuessNumber {

    static Random rand = new Random(); 
    static Scanner scan = new Scanner(System.in); 
    static int number; 

    public static void main(String[] args) {
        playGame();
    }

    public static void playGame() {
        number = rand.nextInt(100) + 1;
        System.out.println("Guess the number between 1 and 100");
        while (true) {
            int guess = scan.nextInt();
            if (guess < number) {
                System.out.println("Higher!");
            } else if (guess > number) {
                System.out.println("Lower!");
            } else if (guess == number) {
                System.out.println("Correct!");
                Scanner scan2 = new Scanner(System.in);
                System.out.println("do you wanna play again?[Y/N]");
                String val = scan2.next();
                if (val.equalsIgnoreCase("Y")) {
                    playGame();
                } else {
                    break;
                }
            }
        }
    }
}
4

2 に答える 2

1

静的変数を宣言するときは、次のように入力します。

static int number, guess;

両方の番号を同時に宣言する。次に、メイン ループ内で次の操作を行います。

while (true) {
    while (true) {
        try {
            guess = Integer.parseInt(scan.nextLine());
            break;
        } catch (Exception e) {
            System.out.println("Not a valid number!");
            continue;
        }
    }
    //Rest of your if's, else if's, etc
}

私はそれをテストしました、そしてそれは私のために働きます。

必要に応じて、すべてのコードを貼り付けることができますが、if ステートメントの前に、最初の while ループ内に 2 番目の while ループを簡単にネストできるはずです。

于 2014-10-08T01:39:58.657 に答える