java while循环计数不正确

时间:2013-02-23 22:16:17

标签: java while-loop do-while

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

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

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

i初始化为private static int i = 0; //Game counter

但输出并没有让我看错。首先,如果游戏丢失(返回值为假),则不会停止执行。并且它不计算中奖号码是否正确。例如,如果赢了3场比赛,它会计算他是否赢了2场比赛。

此循环是否有任何逻辑错误?

由于

1 个答案:

答案 0 :(得分:1)

你不应该在循环中调用Craps.play(),因为你会错过验证。另外,在您的原始代码中,您要拨打Craps.play()两次,但只需将i增加一次。将您的代码更改为此代码,它应该按预期工作:

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