java - 在猜数字游戏中循环

标签 java algorithm oop if-statement while-loop

我需要编写代码,要求您猜测 1 到 10 之间的数字并使用循环。它必须使用 System.in.read() 方法来获取用户输入。正确的数字是7,当你猜到的时候就结束了。如果你猜错了,它会告诉你再试一次。我不知道为什么我的代码无法正常工作,所以我需要一些帮助。我得到的输出很奇怪,无论我输入什么数字,它都只是说:

  • 你好!输入 1 到 10 之间的数字:
  • (输入数字,例如 4)
  • 您的猜测太高
  • 你好!输入 1 到 10 之间的数字:
  • 您的猜测太高
  • 你好!输入 1 到 10 之间的数字:

我是编程新手,如果缩进不正确或者解决方案很明显,我很抱歉。

public static void main(String[] args) throws java.io.IOException {
    int input;
    boolean play = true;
    while (play == true) {
        System.out.println("Hello! Enter a number between 1 and 10: ");
        input = System.in.read();
        if (input > 7) {
            System.out.println("Your guess is too high");
        } else if (input < 7) {
            System.out.println("Your guess is too low");
        } else if (input == 7) {
            System.out.println("Correct! the correct number was: 7"); 
        }
    }
}

它应该根据数字给你一个具体的结果,比如太高或太低,那么你可以重试并输入一个新数字,直到得到正确答案 7。如果数字不是 1 -10 您应该收到一条错误消息。谢谢。

最佳答案

您没有更改 play 变量,因此不会退出 while 循环。您必须像这样更改它:

else if (input == 7) {
    System.out.println("Correct! the correct number was: 7"); 
    play = false;
}

您可能还想在 while 循环之前移动此行:System.out.println("Hello! Enter a number between 1 and 10: ");

关于java - 在猜数字游戏中循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55561724/

相关文章:

java - OpenHFT/Chronicle map 失败

java - 如何设置 ArrayList<String>

algorithm - 基本加密算法

javascript - 当程序继续运行时,这个 Javascript 对象是否存储其状态?

c# - Java 与 C# : Are there any studies that compare their execution speed?

algorithm - 找出非相交道路的最大间隔

algorithm - 'reduction of p‌r‌o‌b‌l‌e‌m be done in polynomial time' 是否必须是 NP 完整的?

javascript - OOP - 访问对象以更改其变量?

javascript - 如何使用闭包创建 javascript 库

java - 使用prepare语句进行动态Sql查询