C++ Do while语句未按预期操作
我们的任务是创建一个简单的基于回合的游戏,但是我的do-while循环没有按预期工作,它没有在whilep1.getHP>=0&&p2.getHP>=0 作为参考,这里有一个链接到我的代码。 它还没有完全完成,我只想在完成之前消除这个错误。问题出在您身上p1.getHP>=0&&p2.getHP>=0。p1.getHP始终返回>=0,p2.getHP始终返回>=0 您必须确保p2.getHP或p1.getHP在某个时间点返回负值。C++ Do while语句未按预期操作,c++,loops,do-while,C++,Loops,Do While,我们的任务是创建一个简单的基于回合的游戏,但是我的do-while循环没有按预期工作,它没有在whilep1.getHP>=0&&p2.getHP>=0 作为参考,这里有一个链接到我的代码。 它还没有完全完成,我只想在完成之前消除这个错误。问题出在您身上p1.getHP>=0&&p2.getHP>=0。p1.getHP始终返回>=0,p2.getHP始终返回>=0 您必须确保p2.getHP或p1.getHP在某个时间点返回负值。 while (p1.getHp() > 0 || p2.
while (p1.getHp() > 0 || p2.getHp() > 0)
而不是
while (p1.getHp() > 0 && p2.getHp() > 0)
此外,不应重新设置HP
而是
Life=100;
第三个错误:
while (again=1);
是一个无止境的循环,您可能需要:
while (again==1);
根据我偶然发现的错误判断,我建议您再次检查您的完整代码是否存在错误,因为我确信还有更多隐藏的…此代码缩进严重,不确定是否存在问题,无法以低代表性进行评论,但我会告诉您,您的最后一行无法工作:
while(again=1);
应该是
while(again==1);
你不能用一小段代码重新处理这个问题,然后把代码粘贴到这里吗?我试过了,但我不知道如何使用这个网站的标记,所以我只是粘贴了它。@AcBayudan这违反了这里的规则。@AcBayudan我不知道如何使用这个网站的标记,这是没有理由的。只需将代码缩进四个空格,并在代码块前后至少留下一行空行。编辑时使用预览,检查它的实际外观。请正确缩进代码,并在问题中给出一个演示问题的最小示例。你的代码太糟糕了,以至于我无法判断这行是空的while循环,还是庞大的do…while循环的结尾。p2.getHP/p1.getHP总是在某个点返回负值,通常是在10圈左右之后,但即使它低于0,代码也无法识别它并反复循环。你必须确保。如果循环没有结束,则表示条件仍然为真。这不是php缺陷,而是源代码中的一个bug。你的眼睛真的很好。@Nico仍然需要眼镜XD
while(again==1);