簡體   English   中英

猜游戲又麻煩了

[英]Guessing game play again trouble

好的,所以我嘗試了一種方法,但是由於某種原因,每次輸入數字時,它都會一直顯示“您想再次玩嗎”。 這是我到目前為止所擁有的。 我還可以做些什么,以便只有在用戶猜對了正確答案后,它才會詢問他/她是否想再次玩游戲?

import java.util.Random;
import java.util.Scanner;

public class GuessNumber {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        Random rand = new Random();
        int number = rand.nextInt(100) + 1;
        int guess;

        System.out.println("Guess the number between 1 and 100\n");

        guess = scan.nextInt();

        while (true) {
            if(guess < number)       
               System.out.println("Higher!");
            else if(guess > number)
               System.out.println("Lower!");
            else if (guess == number){
               System.out.println("Correct!");
            }
               guess = scan.nextInt();
       }
    }
  }

試試這個

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!");
                System.out.println("Do you like to play again?[1 for Yes/0 for No]");
                int val = scan2.next();
                if (val == 1)
                    playGame();
                else
                    break;
            }
        }
    }
}

而不是使用同一台掃描儀,您可以使用另一台掃描儀並按以下方式獲取字符串輸入

 else if (guess == number) {
      System.out.println("Correct!");
      Scanner scan2 = new Scanner(System.in);
      System.out.println("Do you like to play again?[Y/N]");
      String val = scan2.next();
      if (val.equalsIgnoreCase("Y"))
           playGame();
      else 
           break;
 }

正確時需要退出一會兒。

為此,請在下一行之后:

System.out.println("Correct!");

像這樣添加另一行:

break;

通常,出於娛樂目的,我實施了一款符合您所嘗試做的事情的游戲。 該代碼不是最干凈/最有效的,但絕對可以!

看看它,看看是否可以解決您的問題。

import java.util.Random;
import java.util.Scanner;

public class GuessingGame {

public static void main(String[] args) {

        System.out.println("Guess the number between 1 and 100");

        playGuessingGame();

        while (true) {
            System.out
                .println("Do you want to play again? Type y / n and hit enter");

            Scanner scan = new Scanner(System.in);
            String playAgain = scan.next();

            if (playAgain.charAt(0) == 'y') {
                System.out.println("Okay, I picked a new number. Good luck!");
                playGuessingGame();
            } else {
                System.out.println("Thanks for playing!");
                break;
            }
        }

    }

    public static void playGuessingGame() {
        Scanner scan = new Scanner(System.in);
        Random rand = new Random();

        int guess;
        int number = rand.nextInt(100) + 1;

        guess = scan.nextInt();

        while (guess != number) {
            if (guess < number)
                System.out.println("Higher!");
            else if (guess > number)
                System.out.println("Lower!");
            else if (guess == number) {
                System.out.println("Correct!");
            }
            guess = scan.nextInt();
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM