为什么这个循环不起作用?

时间:2017-11-15 03:31:37

标签: c++

while(a!=1&&c!=1)
{
    r=rand()%2;
    if(r==0)
    {
        cout<<"Cruz"<<endl;
        if(a==1)
        {
            c=0;
        }
        c++;
    }
    else if(r==1)
    {
        if(a>1)
        {
            a=0;
        }
        cout<<"Cara"<<endl;
        a++;
    }
    b++;
}

我不知道为什么,但是当两个条件中的一个是假的时候,这个循环总是退出......当两者​​都是假的时候我需要。 有谁知道为什么会这样?

3 个答案:

答案 0 :(得分:1)

逻辑和操作仅在满足两个条件时才返回true。如果您需要循环工作,请使用逻辑OR运算符,当满足任何一个条件时返回true。请参阅下面的真值表。请检查您是否使用了正确的逻辑运算符

答案 1 :(得分:0)

非常确定您需要||而不是&&,因为如果 中的是真实的语句,您希望它继续。 (或者,这可能会更加连贯,你可以这样做:!(a==1||c==1)

答案 2 :(得分:0)

while语句之后,您解释了在代码继续循环时必须保持为真的的条件。由于您希望在a b拥有某些属性时退出,因此您需要继续while a b没有该属性。

假设你的家庭作业和家务都完成后你就无法入睡。这意味着您需要保持清醒while您的家庭作业您的家务活未完成。