질문있습니다.

해결됨
상욱 프로필

9:00

int x = 0;

int y = 1;

if ((!x) == y)

{

cout  << " x does not equal y" << endl;

}

else

        cout  << " x equals y" << endl;

위 식에서 if는 x,y 중 하나만 false의 값을 가졌을때 true가 되며 나머지는 항상 false입니다. 

0이 아니면 true인데 y가 2 이상이 되면 false가 됩니다.

왜이런가요?

Hello Yeo 프로필
Hello Yeo 2달 전

1==1 과 1==2 의 결과를 생각해보세요.
목표로 하시는 코드는 &&를 이용하셔야할 것 같습니다.

상욱 프로필
상욱 2달 전

bool 타입으로 x,y 변수를 선언하고 x,y값 중 하나만 false를 가졌을때 true가 되고 나머지는 항상 false입니다.

&&를 사용해 x가 true, y가 false일때 else가 출력되는 이유는 (false && false) = false 인가요? 

Hello Yeo 프로필
Hello Yeo 2달 전

!((A&&B)||(!A&&!B))   또는  (!A||!B)&&(A||B)

이런 방식으로 가능하실겁니다.

이제보니 bool type 으로 쓰고 연산자 하나로

목표를 수행하고자 하셨을 수도 있겠네요.

그렇지만 앞서 시도하셨듯이 int와 함께 사용하려면 시도하셨던 방식은 좋지 못하다고 생각합니다.

개인적으로 이 강의를 다시 한 번 보시고 내용들을 정리하셨으면 좋겠습니다. (각 연산자들이 무슨 일을 하는지 숙지하실 필요가 있습니다.)

상욱 프로필
상욱 2달 전

뼈해장국으로 든든하게 배채우고 왔는데도 뭘 놓치고 있는지 모르겠습니다.

bool a = false;

if ((!a)==1) 과 if((!a)==2)의 값이 다르게 나오는 이유가 있나요?

Hello Yeo 프로필
Hello Yeo 2달 전

!a의 값을 출력해보시고 이해가 안되시면
== 가 뭔지 공부해보세요. 내용은 3.5 Relational Operators 강의에 나와있습니다.
특히 (10:00~) 를 이해하시는게 중요해보이네요.

상욱 프로필
상욱 2달 전

출력값과 타입을 놓치고 있었네요.

감사합니다.

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스