当前位置: 首页 > 知识库问答 >
问题:

如何生成一个随机数后,用户猜测正确的数字?

沈博延
2023-03-14

我已经编写了下面的代码。我已经运行了这个程序,它允许用户猜测正确的数字并成功返回消息。然而,我不能让它重新生成一个新的随机数?我也不能包括一个选项来询问用户是否想退出。请帮忙。谢谢你。

import java.util.*;

class CompterAge {
  public static void main (String[] args) {
    Scanner sc = new Scanner(System.in);

    boolean correctGuess = false;
    
    Random r = new Random();
    int randNum = r.nextInt(100-1+1) + 1;
      
      while (!correctGuess) {
        System.out.println("Guess the computer's age: ");
        int guess = sc.nextInt();
        
        if ((guess > 0) && (guess <= 100)) {
              if (guess > randNum) {
                System.out.println("Your guess is bigger than the number. You should go lower.");
                correctGuess = false;
              } else if (guess < randNum) {
                System.out.println("Your guess is smaller than the number. You should go higher.");
                correctGuess = false;
              } else {
                System.out.println("Congratulations. You got the number! The number is " + randNum);
                System.out.println("Do you wish to continue the game? Yes/No");
                String input = sc.next();
                if (input == "Yes") {
                  correctGuess = false;
                } else {
                  break;
                }
              }
        } else {
        System.out.println("Please enter a number between 1 to 100.");
        correctGuess = false;
        }
      } 
      
}
}

共有1个答案

萧升
2023-03-14

这段代码工作,我已经添加了另一个标志变量,并纠正了一些逻辑错误。见评论。

boolean correctGuess = false;
boolean endGame = false;

Random r = new Random();

while (!endGame){  
    int randNum = r.nextInt(101); //Why did you have (100-1+1) + 1 ?? Simple (101) was enough
    correctGuess = false;
    while (!correctGuess) {
        System.out.println("Guess the computer's age: ");
        int guess = sc.nextInt();
        
        if ((guess > 0) && (guess <= 100)) {
            if (guess > randNum) {
                System.out.println("Your guess is bigger than the number. You should go lower.");
                correctGuess = false;
            } else if (guess < randNum) {
                System.out.println("Your guess is smaller than the number. You should go higher.");
                correctGuess = false;
            } else {
                correctGuess = true; //Will exit the Inner Loop
                System.out.println("Congratulations. You got the number! The number is " + randNum);
                System.out.println("Do you wish to continue the game? Yes/No");
                String input = sc.next().toLowerCase();
                if (input.equals("yes")) { //You can not use == for String Comparisons
                endGame = false;
                } else {
                endGame = true;
                }
            }
        } else {
        System.out.println("Please enter a number between 1 to 100.");
        correctGuess = false;
        }
    } 
}
 类似资料:
  • 我对Java还是有点陌生,有一个实验室需要模拟一个彩票游戏,生成一个介于1到10之间的数字。它首先询问用户想要购买多少张彩票,然后询问他们是否希望计算机为他们生成猜测,如果是,则会生成猜测并显示中奖号码。如果用户说不,那么用户将自己输入猜测,并显示中奖号码。 我在弄清楚当有人输入是或否时如何执行代码时遇到了问题。我应该做一个do while循环吗? 这是我现在的代码。 以下是算法:1。获取购票数量

  • 本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下  

  • 问题内容: 我试图在Go中生成一个随机字符串,这是我到目前为止编写的代码: 我的执行速度很慢。使用进行播种会在一定时间内带来相同的随机数,因此循环会一次又一次地迭代。如何改善我的代码? 问题答案: 每次设置相同的种子,您将获得相同的序列。因此,当然,如果您将种子设置为快速循环中的时间,则可能会多次调用相同的种子。 在您的情况下,在您调用函数直到拥有不同的值之前,您正在等待时间(由Nano返回)。

  • 我有一个脚本,当加入时随机生成一个房间id。我想通过点击一个按钮复制那个ID。这将是一个简单的工作输入元素,然而,我不知道如何目标随机ID编辑和操作它。我怎么能那么做? null null 加入房间时已生成房间ID。我只需要把它拷贝到剪贴板上。添加“createroom”代码。

  • 问题内容: 我意识到Swift书提供了一个随机数生成器的实现。将这种实现复制并粘贴到自己的程序中的最佳实践是吗?还是有一个可以立即使用的库? 问题答案: 迅捷4.2+ Xcode 10附带的Swift 4.2为许多数据类型引入了新的易于使用的随机函数。您可以在数字类型上调用该方法。

  • 我想做一个像彩票一样的程序,中奖号码是随机生成的。 我使用了,如果用户猜到了所有6个数字。 如果用户只能猜测5位数字,我应该用什么方法从随机生成的数字中计算出5个正确的数字? 代码是: 类是,和