【问题标题】:Number Guessing Program issue Java数字猜测程序问题Java
【发布时间】:2017-05-01 05:43:40
【问题描述】:

我在完成这个分配给我的作业时遇到了问题(高中)。这是一个猜数字游戏,我已经记下了大部分内容,但他希望我们在控制台上输入一系列数字。一个示例输出是:

输入下限:4

输入上限:10

等等,基本上选择你希望电脑选择的具体数字范围。我只能在设定的范围(1-1000)内编码,因为我不知道如何做他想做的事。这是我的代码:

import java.util.Scanner;


public class Game {
  public static void main(String[] args) {
        int randomNumber;
        randomNumber = (int) (Math.random() * 999 + 1);           
        Scanner keyboard = new Scanner(System.in);
        int guess;
 do {
            System.out.print("Enter a guess (1-1000): ");
            guess = keyboard.nextInt();

    if (guess == randomNumber)
  System.out.println("Your guess is correct. Congratulations!");
    else if (guess < randomNumber)
       System.out.println("Your guess is smaller than the secret number.");
  else if (guess > randomNumber)
 System.out.println("Your guess is greater than the secret number.");
        } while (guess != randomNumber);
  }

}

如果您尝试它,无论如何也很难玩。我会很感激一些帮助,谢谢!

【问题讨论】:

  • 你认为这个表达式在做什么:(int) (Math.random() * 999 + 1)?你会如何改变它以获得另一个范围?

标签: java if-statement


【解决方案1】:

对于范围内的随机数,您有两种选择:

Random rand = new Random();
// nextInt is normally exclusive of the top value,
// so add 1 to make it inclusive
int randomNum = rand.nextInt((max - min) + 1) + min;

或者在 java 1.7 或更高版本中:

int randomNum = ThreadLocalRandom.current().nextInt(min, max + 1);

【讨论】:

  • 你打败了我。我准备了几乎相同的解决方案,但您先发布了。 ):我仍然会投票,因为你的答案是正确的
  • 感谢您花时间帮助我!
【解决方案2】:

如果您希望用户设置范围,则需要实现另一行,向用户询问范围

Scanner min= new Scanner(System.in);Scanner max = new Scanner(System.in);

然后在这行代码randomNumber = (int) (Math.random() * 999 + 1); 中,您现在可以使用用户输入random.nextInt(max - min + 1) + min 设置您想要的范围

【讨论】:

  • 谢谢!
【解决方案3】:
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
  Scanner keyboard = new Scanner(System.in);
  System.out.println("enter minimum");
  int min= keyboard.nextInt();
  System.out.println("enter maximum");
  int max= keyboard.nextInt();
  int randomNumber= (int) (Math.random()* max + min);
  int guess;
  do {
     System.out.print("Enter a guess (1-1000): ");
     guess = keyboard.nextInt();

     if (guess == randomNumber)
        System.out.println("Your guess is correct. Congratulations!");
     else if (guess < randomNumber)
        System.out.println("Your guess is smaller than the secret number.");
     else if (guess > randomNumber)
        System.out.println("Your guess is greater than the secret number.");
   } while (guess != randomNumber);
  }
 }

【讨论】:

  • 也谢谢你们,你们都非常有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 1970-01-01
  • 2021-05-29
  • 2013-02-22
  • 1970-01-01
  • 2018-09-21
相关资源
最近更新 更多