public static void main(String[] args) throws IOException {
System.out.println("Hello, come and play a game with me!");
int x = 5;
int guess;
do {
System.out.println("Please input a number...");
guess = System.in.read();
guess = System.in.read();
if (guess < 5) {
System.out.println("You guessed the number!");
break;
}
} while (guess > 5);
}
所以我在这里写了一些代码。这应该是一个猜谜游戏,但无论我输入什么,它总是在输出中给我“请输入一个数字......”无论我输入什么。基本上,如果“猜测”超过5,那么他们猜对了这个数字。如果不是,那么他们没有猜到这个数字。这是比赛的前提。有人可以帮我修改我的代码,所以它不会输出同样的东西吗?
答案 0 :(得分:3)
System.in.read();
给你char。所以当你输入&#34; 1&#34;时,它会给你它的char值49.所以你输入的数字不能输入整数5。所以改变你的阅读方法。你可以使用Scanner
答案 1 :(得分:1)
你正在做相反的事 - 小于5的答案被认为是正确的。
答案 2 :(得分:0)
以下是您的代码的工作版本。
如前面的答案所述,System.in读入字符,因此您无法直接读取数字。下面的代码是利用BufferedReader API whitch在InputStream上工作。
public class App {
public static void main(String[] args) throws IOException {
System.out.println("Hello, come and play a game with me!");
int x = 5;
int guess;
do
{
System.out.println("Please input a number...");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
guess = Integer.parseInt(br.readLine());
if(guess < 5){
System.out.println("You guessed the number!");
break;
}
} while(guess>5);
}
}
答案 3 :(得分:0)
看起来你没有使用变量x,尝试使用Scanner类来获取用户的输入
public static void main(String [] args)抛出IOException {
System.out.println("Hello, come and play a game with me!");
int guess;
Scanner input = new Scanner(System.in);
do {
System.out.println("Please input a number...");
guess = input.nextInt();
if (guess < 5) {
System.out.println("You guessed the number!");
break;
}
} while (guess > 5);
}