2013-02-23 52 views
0

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

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

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

i被初始化为私有静态诠释i = 0; //Game counter

但是输出没看见我是正确的。首先,如果游戏丢失(返回值为false),它不会停止执行。而且它不计算正确的赢数。例如,如果赢得3场比赛,则计算他是否赢得2场比赛。

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

感谢

+1

在while条件*和*中调用'Craps.play();'可能是问题。 – 2013-02-23 22:17:18

+0

问题可能是你在'while-loop'里面调用'Craps#play'函数两次:一个是条件,另一个是'while'代码 – 2013-02-23 22:17:39

+0

是的,只是删除了“Craps.play()”请在* while *循环体中调用 – jazzytomato 2013-02-23 22:18:19

回答

1

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

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

哦,是的。我做了这个改变,现在代码工作正常。谢谢你们提供的答案。 – JavaRed 2013-02-23 22:50:15