【发布时间】:2019-01-03 22:09:01
【问题描述】:
我是 JAVA 菜鸟,我一直在尝试编写数字猜谜游戏的代码,计算机从 0 到 500 中选择数字 健康)状况: 如果数字太小,用户输入 0 并且计算机猜测较小的数字 如果数字太高,用户输入 1 并且计算机猜测更高的数字
并以 5 次猜测结束游戏
这是我的代码
import java.util.Scanner;
public class Guessinggame1000 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
for (int i = 1; i <= 5; i++) {
double r = Math.random() * 500 + 1;
int x = (int) r;
int n = in.nextInt();
double high = x;
double low = x ;
if (n == 0) high = (int) (Math.random()) * 500 + x;
System.out.println(((int) high));
if (n == 1) low = (int) (Math.random()) * x;
System.out.println(((int) low));
if (i == 5) System.out.println("We've lost");
}
}
}
似乎当我运行解决方案时,我无法让计算机打印更高或更低的数字,而只能打印随机数。
任何建议将不胜感激!!! :D
【问题讨论】:
-
这是一个让您熟悉调试器使用的好机会。当您使用调试器时,您可以在代码执行时逐行逐行执行并观察,一次一行,变量的确切值以及每个单独的操作如何修改这些值。执行此操作时,您首先在代码的哪一行观察到意外结果?那行代码的输入是什么?结果如何?你期待什么结果?为什么?
-
您应该改用
ThreadLocalRandom.current().nextInt(min, max + 1)。或者,如果您使用的是 Java Random.nextInt.
标签: java