我需要编写代码,要求您猜测1到10之间的数字并使用循环。它必须使用System.in.read()方法获取用户输入。正确的数字是7,当您猜到它结束时。如果您猜错了,它会告诉您重试。我不知道为什么我的代码无法正常工作,因此我可以使用一些帮助。我得到的输出很奇怪,无论我输入多少数字都只是说:
我是编程新手,所以如果缩进不正确或解决方案显而易见,对不起。
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您将收到一条错误消息。谢谢。
答案 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;
}
}
}