在数字猜谜游戏中循环

时间:2019-04-07 17:18:02

标签: java loops

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

  • 你好!输入1到10之间的数字:
  • (输入数字ex。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您将收到一条错误消息。谢谢。

2 个答案:

答案 0 :(得分:1)

您没有更改play变量,因此while循环中没有任何障碍。您必须像这样更改它:

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

另外,您可能希望移动以下行:System.out.println("Hello! Enter a number between 1 and 10: ");循环前的while

答案 1 :(得分:0)

这可能会解决您的问题。

public static void main(String[] args) {

    int input;
    boolean play = true;
    Scanner inputNumber = new Scanner(System.in);
    while (play) {
        System.out.println("Hello! Enter a number between 1 and 10: ");
        input = inputNumber.nextInt();
        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");
            play = false;
        }
    }
}