>

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++;
}

왜 그런지 모르겠지만 두 조건 중 하나가 거짓이면이 루프가 항상 종료됩니다. 그리고 둘 다 거짓이면 필요합니다. 왜 이런 일이 일어나는지 아십니까?

  • 답변 # 1

    확실히 당신이 || 를 원하십니까   && 대신  그들 중둘 중이 사실이라면 계속하기를 원하기 때문입니다. (또는 선택적으로 더 일관성이있을 수 있습니다 . !(a==1||c==1) )

  • 답변 # 2

    논리와 연산은 두 조건이 모두 충족 될 때만 true를 반환합니다. 루프가 작동해야하는 경우 조건 중 하나가 충족되면 true를 리턴하는 논리 OR 연산자를 사용하십시오. 아래의 진리표를 참조하십시오. 올바른 논리 연산자를 사용하고 있는지 확인하십시오

  • 답변 # 3

    while 후  문에서 코드를 계속 반복하면서유지해야하는 조건을 설명합니다. a 를 종료하고 싶기 때문에   b  재산이 있으시면 while 를 계속 반복해야합니다.  어느 a  또는 b  해당 속성이 없습니다.

    당신의 숙제와 집안일이 끝날 때까지 잠을 잘 수 없다고 말하십시오. 그것은 당신이 깨어있는 while 를 유지해야한다는 것을 의미합니다  숙제또는집안일이 완료되지 않았습니다

관련 자료

  • 이전 rtf 파일에서 주어진 단어를 수정하는 Python 스크립트
  • 다음 Firebase Firestore에서 고유 한 사용자 ID 시행