Java 猜谜游戏又玩麻烦了

Java 猜谜游戏又玩麻烦了,java,if-statement,while-loop,Java,If Statement,While Loop,好的,我试过一种方法,但每次我出于某种原因输入一个数字时,它都会显示“你想再玩一次吗?”。这是我到目前为止所拥有的。我还能做些什么,这样只有在用户猜到正确答案后,它才会询问他/她是否想再次玩 import java.util.Random; import java.util.Scanner; public class GuessNumber { public static void main(String[] args) { Scanner scan = new S

好的,我试过一种方法,但每次我出于某种原因输入一个数字时,它都会显示“你想再玩一次吗?”。这是我到目前为止所拥有的。我还能做些什么,这样只有在用户猜到正确答案后,它才会询问他/她是否想再次玩

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();
       }
    }
  }
import java.util.Random;
导入java.util.Scanner;
公共类猜测数{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
Random rand=新的Random();
整数=rand.nextInt(100)+1;
智力猜测;
System.out.println(“猜测介于1和100之间的数字\n”);
guess=scan.nextInt();
while(true){
如果(猜测<数字)
System.out.println(“更高!”);
否则如果(猜测>数字)
System.out.println(“Lower!”);
else if(猜测==数字){
System.out.println(“正确!”);
}
guess=scan.nextInt();
}
}
}

正确时,您需要退出while

要执行此操作,请在该行之后执行以下操作:

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();
        }
    }
}
import java.util.Random;
导入java.util.Scanner;
公开课猜谜游戏{
公共静态void main(字符串[]args){
System.out.println(“猜测1到100之间的数字”);
玩猜谜游戏();
while(true){
系统输出
.println(“是否要再次播放?键入y/n并按enter键”);
扫描仪扫描=新扫描仪(System.in);
String playreach=scan.next();
if(playreach.charAt(0)='y'){
System.out.println(“好的,我选了一个新号码。祝你好运!”);
玩猜谜游戏();
}否则{
System.out.println(“谢谢玩!”);
打破
}
}
}
公共静态无效playGuessingGame(){
扫描仪扫描=新扫描仪(System.in);
Random rand=新的Random();
智力猜测;
整数=rand.nextInt(100)+1;
guess=scan.nextInt();
while(猜测!=数字){
如果(猜测<数字)
System.out.println(“更高!”);
否则如果(猜测>数字)
System.out.println(“Lower!”);
else if(猜测==数字){
System.out.println(“正确!”);
}
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;
            }
        }
    }
}

是的,这个很好!但我删除了System.out.println(number);所以它会在运行时显示数字it@user4068770对不起,弄错了。我把它只是为了调试的目的。我忘了在发布答案之前删除它。现在我把它取下来了。希望这对你有帮助。请投票选出对你有帮助的答案,如果有任何答案解决了你的问题,请将其标记为“回答它不允许我”,因为我没有15+代表
 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;
 }