Imma java新手,所以我尝试学习。我创建了一个布尔方法,这是一个小型掷骰子游戏。我需要从main方法中调用此方法,并在返回值为true(游戏获胜)时继续播放,但是如果返回值为false,则停止执行。我还需要玩家赢得多少次。所以我创建了这样的东西:

while(Craps.play())
{
  Craps.play();
  i++;
}

System.out.println("In total you won " + i + " times");


i初始化为私有静态int i = 0; //Game counter

但是输出并没有使我正确。首先,如果游戏失败(返回值为false),它将不会停止执行。而且它不算正确的中奖号码。例如,如果赢得了3场比赛,它将计算他是否赢得2场比赛。

这个循环有逻辑错误吗?

谢谢

最佳答案

您不应在循环内调用Craps.play(),因为您会错过验证。同样,在您的原始代码中,您两次调用Craps.play(),但是您一次仅增大i。更改您的代码,它应该可以按预期工作:

 while(Craps.play()) {
     i++;
 }

09-05 00:13