我是java的新手,这是我第一次使用if else语句。我试图制作一个基本游戏,用户猜测1-3之间的数字,程序告诉他们是对还是错。但是,当我去执行程序时,当我输入1时,程序没有响应,我必须使用ctrl-E来结束它。我究竟做错了什么?当我输入1以外的值时,程序按照我想要的方式执行,打印“Goodbye。”
这是我的代码:
import java.util.*;
public class GuessTheNumber {
public static void main(String[] args) {
Scanner game = new Scanner(System.in);
Random rand = new Random();
System.out.println("Hey there! Want to play a game?");
System.out.println("\tIf yes, type 1");
System.out.println("\tIf no, type 2");
int ans1 = game.nextInt();
if (ans1 == 1) { // This is true, yet when I type 1, nothing happens.
int randomNum = rand.nextInt((3 - 1) + 1) + 1;
int guess = game.nextInt();
System.out.println("Great! I am thinking of an integer between 1 and 3. Guess what it is?");
if (guess == randomNum) {
System.out.println("Congradulations! You guessed correctly! The number was" + randomNum);
} else {
System.out.println("Sorry, your guess was incorrect. The number I was thinking of was" + randomNum);
}
} else {
System.out.println("Goodbye.");
}
}
}
这是我第一次在这里发帖,所以如果这个问题在其他地方得到解答我会道歉。
答案 0 :(得分:0)
因为如果ans1 = 1,那么它期望来自用户的另一个输入并检查猜测和另一个输入是否相同。
这是等待的第二个输入
int guess = game.nextInt();
输入任意数字,如果生成的随机数等于您第二次添加的数字,它将返回" Congradulations!你猜错了!这个数字是"别的"对不起,您的猜测不正确。我想到的数字是"数字
答案 1 :(得分:0)
而不是:
int guess = game.nextInt();
System.out.println( "Great! I am thinking of an integer between 1 and 3. Guess what it is?" );
你应该让他们逆转。
System.out.println( "Great! I am thinking of an integer between 1 and 3. Guess what it is?" );
int guess = game.nextInt();