我正在尝试定义一个主要方法,要求用户输入(x)。如果值>> = 0,则它要求另一个输入(y)。但是如果值是< 0玩家有三次机会输入正确的值,否则他退出游戏。这就是我现在所拥有的:
Scanner keyboard = new Scanner(System.in);
final int NUMBER_OF_TRIES = 3;
boolean correctNumber = false;
int attemptNumber = 0;
int x = keyboard.nextInt();
keyboard.nextLine();;
while (x < 0)
{
System.out.println("Must not be negative.");
System.out.print("Initial x: ");
int x = keyboard.nextInt(); keyboard.nextLine();
if (x >= 0)
{
correctNumber = true;
}
else
{
System.out.println("Incorrect answer");
attemptNumber++;
}
if(x < 0 && attemptNumber == NUMBER_OF_TRIES)
{
System.out.println("Too many errors. Exiting.");
break;
}
但是因为我已经定义了'x',所以我不能在循环中再做一次。我认为我的问题非常简单,但我无法找到解决问题的方法。有谁知道怎么做?
答案 0 :(得分:1)
如果你只是删除&#34; int&#34;这看起来可能会有用。从第12行开始。你不需要在那里声明变量,因为你已经声明了它。
答案 1 :(得分:0)
如果退出循环的条件是输入负值3次,则将其用作实际条件。代码也应该更容易阅读。
incorrectAttempts = 0;
while (incorrectAttempts < 3)
{
get new value
value invalid?
yes: incorrectAttempts = incorrectAttempts + 1;
no: do anything else;
}