【发布时间】:2015-04-15 10:24:23
【问题描述】:
我完成了我的课堂作业,除了一件事还想不通。 如何使程序只允许 1 到 100 范围内的数字?如果用户输入一个小于 1 或大于 100 的数字,它应该告诉用户该数字超出范围。
我设置了一个随机类和一个 while 循环,它接受输入并告诉用户数字太高或太低。如果数字正确,则显示您赢得按摩。一切正常,但只有范围部分。 导入 java.util.Scanner; 导入 java.util.Random;
公共类 GuessingGame {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Random generator = new Random();
int numberToGuess = 1 + generator.nextInt(100);
int numberOfTries = 0;
Scanner input = new Scanner (System.in);
int guess;
boolean win = false;
System.out.println("You have 10 tries to guess a number between 1 and 100");
while(!win && numberOfTries < 10)
{
System.out.println("Guess a number: ");
guess = input.nextInt();
if (guess < 1 || guess > 100)
{
System.out.println("Guess is out of range!");
continue;
}
if (guess == numberToGuess)
{
win=true;
}
else if (guess < numberToGuess)
{
System.out.println("Your guess is too low");
}
else if (guess > numberToGuess)
{
System.out.println("Your guess is too high");
}
}
System.out.println("You win!");
System.out.println("The number was " + numberToGuess);
System.out.println("It took you " + numberOfTries + " tries." );
}
} - 我添加了其余的代码 -
但是如果我输入像 -1 或 101 这样的数字,程序会说数字太高或数字太低,忽略超出范围的语句。想不通为什么。 请你帮助我好吗? 谢谢
【问题讨论】:
-
你是否在 "break;" 的末尾漏掉了一个 } ?
-
旁注:最好写
!win而不是win == false。 -
这不是你的真实代码。 Java 中没有
If。请发布更忠于您的真实代码的内容。 -
另外我希望
If是问题中的错字,应该是if。 -
“如果我输入像 -1 这样的数字 [...] 程序会说 [...] 数字太低”... 这不是你想要的吗?
标签: java