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场比赛。
此循环是否有任何逻辑错误?
由于
答案 0 :(得分:1)
你不应该在循环中调用Craps.play()
,因为你会错过验证。另外,在您的原始代码中,您要拨打Craps.play()
两次,但只需将i
增加一次。将您的代码更改为此代码,它应该按预期工作:
while(Craps.play()) {
i++;
}