首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在do while表达式中放入2个布尔控制器?

在do while表达式中放入2个布尔控制器?
EN

Stack Overflow用户
提问于 2013-10-01 00:54:31
回答 3查看 101关注 0票数 0

新手程序员来了。我正在使用Java来尝试创建一个猜数游戏。我希望do while循环继续循环,直到用户输入正确的数字或猜不到为止。这就是我所拥有的,我不知道如何使用2个布尔控制器。

代码语言:javascript
运行
复制
do
    {System.out.println("Enter guess #1");
    userGuess = keyboard.nextInt();

    } while ((userGuess != actualNumber) || (remainingGuesses = guesses;       remainingGuesses >= 1; remainingGuesses--)); 

如有任何帮助,我们不胜感激!

EN

回答 3

Stack Overflow用户

发布于 2013-10-01 00:57:37

我认为你想要更接近这个效果的东西:

代码语言:javascript
运行
复制
remainingGuess = guesses;
do {
   System.out.println("Enter guess #1");
   userGuess = keyboard.nextInt();
} while ( userGuess != actualNumber || remainingGuesses-- > 0 )

逐行:

代码语言:javascript
运行
复制
remainingGuesses = guesses;

guesses赋值给remainingGuesses一次,如果您在循环的每次迭代中都这样做,那么它将永远不会结束

代码语言:javascript
运行
复制
userGuess != actualNumber || remainingGuesses-- > 0 

当用户猜测错误或者remainingGuesses大于0时,继续迭代。

代码语言:javascript
运行
复制
remainingGuesses--

计算为变量remainingGuesses的当前值,然后在表达式将其减去1之后。

票数 2
EN

Stack Overflow用户

发布于 2013-10-01 00:58:55

在进入循环之前初始化剩余的猜测。只检查while括号"()“中的条件

代码语言:javascript
运行
复制
reaminingGuesses = guesses;
do
    {System.out.println("Enter guess #1");
    userGuess = keyboard.nextInt();
    remainingGuess--;
    } while ((userGuess != actualNumber) || (remainingGuesses >= 1)); 
票数 0
EN

Stack Overflow用户

发布于 2014-06-10 02:10:00

如果你想这样做,我会做一些小的修改,并假设你已经为actualNumber和允许的猜测总数定义了常量:

代码语言:javascript
运行
复制
// 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可以通过多种方式定义。

早些时候,我认为完整地写出这些逻辑块并从中压缩是有帮助的,例如:

代码语言:javascript
运行
复制
public boolean shouldStop(int guess) {
  if(remainingGuesses <=0) {
     return true;
  }  else if(guess == actualNumber) {
     return true;
  }  else {
     return false;
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19099655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档