新手程序员来了。我正在使用Java来尝试创建一个猜数游戏。我希望do while循环继续循环,直到用户输入正确的数字或猜不到为止。这就是我所拥有的,我不知道如何使用2个布尔控制器。
do
{System.out.println("Enter guess #1");
userGuess = keyboard.nextInt();
} while ((userGuess != actualNumber) || (remainingGuesses = guesses; remainingGuesses >= 1; remainingGuesses--)); 如有任何帮助,我们不胜感激!
发布于 2013-10-01 00:57:37
我认为你想要更接近这个效果的东西:
remainingGuess = guesses;
do {
System.out.println("Enter guess #1");
userGuess = keyboard.nextInt();
} while ( userGuess != actualNumber || remainingGuesses-- > 0 )逐行:
remainingGuesses = guesses;将guesses赋值给remainingGuesses一次,如果您在循环的每次迭代中都这样做,那么它将永远不会结束
userGuess != actualNumber || remainingGuesses-- > 0 当用户猜测错误或者remainingGuesses大于0时,继续迭代。
remainingGuesses--计算为变量remainingGuesses的当前值,然后在表达式将其减去1之后。
发布于 2013-10-01 00:58:55
在进入循环之前初始化剩余的猜测。只检查while括号"()“中的条件
reaminingGuesses = guesses;
do
{System.out.println("Enter guess #1");
userGuess = keyboard.nextInt();
remainingGuess--;
} while ((userGuess != actualNumber) || (remainingGuesses >= 1)); 发布于 2014-06-10 02:10:00
如果你想这样做,我会做一些小的修改,并假设你已经为actualNumber和允许的猜测总数定义了常量:
// break the calls into seperate methods, to make them easier to read in the long term and to
// seperate logical concerns into discrete elements.
do {
// get the user guess
guess = getGuess();
// if shouldStop returns true you would stop, if it returns false you should continue, thus the !..
} while (!shouldStop(guess)) {
// decrement the guesses.
--remainingGuesses;
}
/// define these methods somewhere..,
// get your guess
public int getGuess() {
System.out.println("Enter guess #1");
return keyboard.nextInt();
}
public boolean shouldStop(int guess) {
// condensed if statement syntax in java, very handy for this kind of thing
// do we have enough remaining guess to keep going? If so, compare the guess to the actual number
// otherwise return true (the stop signal
return remainingGuesses > 0 ? guess == actualNumber : true;
}如果你真的想要完成整个过程,你也可以将guess==actual数分解成一个方法,但在这种情况下可能不需要这样做,因为这是一个简单的相等检查。
然而,methos shouldStop可以通过多种方式定义。
早些时候,我认为完整地写出这些逻辑块并从中压缩是有帮助的,例如:
public boolean shouldStop(int guess) {
if(remainingGuesses <=0) {
return true;
} else if(guess == actualNumber) {
return true;
} else {
return false;
}}
https://stackoverflow.com/questions/19099655
复制相似问题