Java 我正在尝试制作一个程序,让用户猜测一个随机的#1-100,它会告诉他们更高或更低,直到用户得到它

Java 我正在尝试制作一个程序,让用户猜测一个随机的#1-100,它会告诉他们更高或更低,直到用户得到它,java,Java,我正在尝试制作一个程序,让用户猜测一个随机的#1-100,它会告诉他们更高或更低,直到用户得到它 这就是我目前所拥有的。我不知道从这里该怎么办。 公共级高低 { publicstaticvoidmain(字符串[]args) { 扫描仪键盘=新扫描仪(System.in); 随机日志=新随机(); //1 - 100 整数=(log.nextInt(100)+1); System.out.println(“猜测?”); int guess=keyboard.nextInt(); 如果(猜测==数

我正在尝试制作一个程序,让用户猜测一个随机的#1-100,它会告诉他们更高或更低,直到用户得到它

这就是我目前所拥有的。我不知道从这里该怎么办。 公共级高低 {

publicstaticvoidmain(字符串[]args)
{
扫描仪键盘=新扫描仪(System.in);
随机日志=新随机();
//1 - 100
整数=(log.nextInt(100)+1);
System.out.println(“猜测?”);
int guess=keyboard.nextInt();
如果(猜测==数字)
{
System.out.println(“恭喜你!”);
}
while(猜测!=数字)
{
如果(猜测>数字)
{
System.out.println(“该数字低于该数字”);
guess=keyboard.nextInt();
}
如果(猜测<数字)
{
System.out.println(“该数字高于该数字”);
guess=keyboard.nextInt();
}
如果(猜测==数字)
{
System.out.println(“恭喜你!”);
}
}
}//干管末端
}//下课
}//下课

您需要一个检查当前猜测是否正确的主循环,以及一个决定高位或低位的if语句。目前,两个单独的while循环无法完成此任务。

您不应该有两个循环,而应该只有一个。当猜测值等于该数字时,您希望游戏停止,因此请设定结束条件:

while (guess != number)
然后,在循环中,测试猜测是否大于或小于数字,打印相应的消息,然后读取下一个猜测。如果循环结束,则表示用户找到了号码

编辑:要避免重复,请执行以下操作:

System.out.println("Guess?");
int guess = keyboard.nextInt();
while (guess != number) {
    if (guess > number) {
        System.out.println("The number is lower than that.");
    }
    else {
        System.out.println("The number is higher than that.");
    }
    guess = keyboard.nextInt();
}
System.out.println("Congratulations!");

你快到了。更多地考虑您应该让用户继续猜测多长时间。现在,用户可以猜测一个数字,只要它高于目标值。然后,他们可以猜测一个数字,只要它低于目标。但这很容易出错。假设目标是50。我最初估计是49,这是更低的,所以第一个循环结束。然后我猜是57,更高,所以第二个循环结束。我还没猜到实际的数字!您真正想要做的是在猜测不等于目标时循环。您应该测试
guess!=在
循环期间,在
中输入编号。然后使用
自定义消息(如果
)。当循环结束时,游戏结束。您将在代码中运行无限循环,因为您在
while
循环中重新定义了
guess
,并分隔了检查
guess
是否大于或小于一个数。用作while循环条件的
guess
与在循环内创建的
int guess
不同。提示;)如果
,您只需要一个
。想想看。我建议你测试程序,如果它的行为不符合预期,就使用调试器。我如何让它在不创建新的int类的情况下读取下一个猜测99次?就像你现在做的那样,在两个循环中的每一个循环中。我希望它能够覆盖现有的“猜测”整数。当我照你说的做的时候,它说int guess基本上已经被取消了。只保留两个循环中的一个。将其结束条件替换为guess!=数字在调用“guess=keyboard.nextInt();”之前,请打印相应的错误消息。您应该删除“guess=keyboard.nextInt();”之前的“int”类型声明。变量已在循环之前声明。无需再次申报。到目前为止,我所拥有的信息已在帖子中。
System.out.println("Guess?");
int guess = keyboard.nextInt();
while (guess != number) {
    if (guess > number) {
        System.out.println("The number is lower than that.");
    }
    else {
        System.out.println("The number is higher than that.");
    }
    guess = keyboard.nextInt();
}
System.out.println("Congratulations!");