C# C中的循环无法结束>
现在我正在努力做到这一点,所以我有1个角色和3个敌人,如果我的角色死了,我应该放弃游戏或者其他什么,但如果敌人死了,我无法让它发挥作用,但我不知道为什么 以下是我正在做的:C# C中的循环无法结束>,c#,loops,C#,Loops,现在我正在努力做到这一点,所以我有1个角色和3个敌人,如果我的角色死了,我应该放弃游戏或者其他什么,但如果敌人死了,我无法让它发挥作用,但我不知道为什么 以下是我正在做的: bool Exit = false; bool CharDead = false; Heroe Heroe1 = p.ElementAt(0); Enemigo Enemigo1 = l.ElementAt(0); Enemigo Enemig
bool Exit = false;
bool CharDead = false;
Heroe Heroe1 = p.ElementAt(0);
Enemigo Enemigo1 = l.ElementAt(0);
Enemigo Enemigo2 = l.ElementAt(1);
Enemigo Enemigo3 = l.ElementAt(2);
a.Agregar(comienza);
List<Items> item = new List<Items>();
do
{
if (Heroe1.HP > 0)
AccionesHeroe1(l, p);
if (Enemigo1.HP > 0)
AccionesEnemigo1(l, p);
if (Enemigo2.HP > 0)
AccionesEnemigo2(l, p);
if (Heroe1.HP > 0)
AccionesHeroe1(l, p);
else
CharDead = true;
if (Enemigo3.HP > 0)
AccionesEnemigo3(l, p);
if (Heroe1.HP <= 0)
{
CharDead = true;
}
if (Enemigo1.HP <= 0 && Enemigo2.HP <= 0 && Enemigo3.HP <= 0)
{
Exit = true;
}
} while (Exit == false || CharDead == false);
你的终止条件是:
(Exit == false || CharDead == false);
只有当CharDead和exit都为true时,才会退出
您可能希望将其返工为:
(Exit == false && CharDead == false);
这样,只要Exit不为false或CharDead不为false,您就可以退出。我想您需要将while循环表达式更改为
do
{
} while(!Exit && !CharDead)
改变
到
这也行,对吧
while(!(Exit || CharDead));
哦,哦,哦,我不知道&我是那样工作的。非常感谢你,说起来更时髦!退出&!查德死了。如果exit与false的比较是真的,chardead与false的比较是真的,这似乎是不必要的冗长。简短的方式是,如果exit不为true,chardead不为true。>。<你得到了一个很好的表达:
while (Exit == false && CharDead == false);
while(!(Exit || CharDead));