Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Do while语句未按预期操作_C++_Loops_Do While - Fatal编程技术网

C++ Do while语句未按预期操作

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.

我们的任务是创建一个简单的基于回合的游戏,但是我的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.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);