java while循环计数不正确

java while循环计数不正确,java,while-loop,do-while,Java,While Loop,Do While,我是一个java新手,所以我试着学习一些东西。我创建了一个布尔方法,这是一个小游戏。我需要这个方法是从主方法调用的,并在返回值为true(游戏获胜)时继续玩,但如果返回值为false,则停止执行。我还需要玩家赢了多少次。所以我创造了这样的东西: while(Craps.play()) { Craps.play(); i++; } System.out.println("In total you won " + i + " times"); i初始化为私有静态inti=0//游戏计数

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

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

System.out.println("In total you won " + i + " times");
i
初始化为私有静态int
i=0//游戏计数器

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

这个循环有逻辑错误吗


谢谢

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

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

调用
Craps.play()和body中的code>可能是问题。问题可能是您在while循环中调用
Craps#play
函数两次:一次作为条件,另一次在
while
block codeYep中只需删除while循环body中的“Craps.play()”调用您可以发布Craps.play()的代码吗这样我们就可以确切地看到它的作用和它是什么?while(Craps.play()){i++;//其他逻辑…}
有什么问题吗?哦,是的。我做了这个更改,现在代码工作正常了。谢谢你们的及时回答。