C# C中的循环无法结束>

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

现在我正在努力做到这一点,所以我有1个角色和3个敌人,如果我的角色死了,我应该放弃游戏或者其他什么,但如果敌人死了,我无法让它发挥作用,但我不知道为什么

以下是我正在做的:

        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));