基本 Java HiLow 猜谜游戏
Posted
技术标签:
【中文标题】基本 Java HiLow 猜谜游戏【英文标题】:Basic Java HiLow guessing game 【发布时间】:2022-01-06 21:02:30 【问题描述】:我完全知道这个问题已经被问过很多次了,它是 CSC 的经典第一年问题。我不是在寻找问题本身的解决方案。我认为我基本上已经完成了,但是我错过了一些我找不到的东西。
这是我的代码:
import java.util.Scanner;
import java.util.Random;
public class HiLow
public static void main (String[] args)
Random generator = new Random();
Scanner scan = new Scanner(System.in);
int num1,guess;
int count = 0;
num1 = generator.nextInt(100) + 1;
while(true)
System.out.print("Enter an integer between 1 or 100 or enter 0 at anytime to quit: ");
guess = scan.nextInt();
count++;
if(guess == num1 || guess == 0)
if(guess == 0)
System.out.println("Thanks for playing");
break;
System.out.println("Congrats you've guessed correct and your total guesses is " + count );
break;
else if (guess > 100 || guess < 1)
System.out.print("I see you cannot follow instructions. I said ");
count--;
else if (guess > num1)
System.out.println("You have guessed too high. ");
else
System.out.println("You have guessed too low.");
我的问题是我需要在“如果用户退出或成功猜到正确的数字,提示用户看他们是否想再次玩”时提示用户。我迷路了,不知道如何在休息后从头开始继续我的 while 循环。有没有办法结束我从 (guess == num1 || guess ==0) 得到的中断条件并指示我的程序在 while(true) 语句处重新开始?
谢谢
【问题讨论】:
此时对你来说一个很好的学习练习是理解 break 和 continue 语句之间的区别。查找它们并在当前问题之外构建一个非常简单的示例。这将帮助您找到您的这个问题的答案。 是的,浏览了我的课堂笔记,在网上查了一下,但这些都没有真正回答我如何重新启动我的 while 循环的问题。不过还是谢谢。 【参考方案1】:我会说搜索continue;
进一步帮助的提示:
continue
语句用于使循环回到起点,请尝试使用它而不是您希望用户继续的 break
。
您需要进行某种检查如果用户想要继续,(尝试让他们输入您检查的某些特定 int,p.s 负数也是整数)
【讨论】:
感谢您抽出宝贵时间回答我,但这根本没有帮助。我知道 continue 会跳到循环的下一部分,但这并不能帮助我理解如何重新启动整个循环。我知道这对你们很多人来说很容易,但是说“它太低级”只会让我更加沮丧。 @Coalharbour:只是一个简短的说明(因为我也编辑了这个答案) - 在您发表评论后,Ahmed Amer(回答者)用几个“提示”更新了这个答案。【参考方案2】:@Ahmed 认为你应该continue
,我宁愿不break
,或者有条件地break
。
【讨论】:
【参考方案3】:您可以通过多种方式完成此操作,一种是使用 Scanner 类提示用户“按 q 退出”对话框,其中 .next() 在用户按 Enter 键时返回字符串:
if(guess == num1 || guess == 0)
if(guess == 0)
System.out.println("Thanks for playing");
else
System.out.println("Congrats you've guessed correct and your total guesses is " + count );
System.out.println("would you like to play again [y/n]?");
if(scan.next().equals("y"))
num1 = generator.nextInt(100) + 1;
count=0;
else
break;
如果这就是你的意思。希望我有所帮助。 或者你可以让它只在零处退出,如果是这样,只需删除第二个中断并将其替换为 num1 = generator.nextInt(100) + 1;设置要猜测的新值。
【讨论】:
这就是我要说的! 是的,我想写一些代码来提供帮助。还有,我不明白。休息有什么问题?为什么不只是有条件地打破循环,例如当用户输入 n 时? 当用户选择再次播放时,你不应该也重置变量count
吗?
是的,你必须这样做。让我解决这个问题。以上是关于基本 Java HiLow 猜谜游戏的主要内容,如果未能解决你的问题,请参考以下文章