해결된 질문
작성
·
259
0
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가 됩니다.
왜이런가요?
답변 6
1
1
!a의 값을 출력해보시고 이해가 안되시면
== 가 뭔지 공부해보세요. 내용은 3.5 Relational Operators 강의에 나와있습니다.
특히 (10:00~) 를 이해하시는게 중요해보이네요.
1
!((A&&B)||(!A&&!B)) 또는 (!A||!B)&&(A||B)
이런 방식으로 가능하실겁니다.
이제보니 bool type 으로 쓰고 연산자 하나로
목표를 수행하고자 하셨을 수도 있겠네요.
그렇지만 앞서 시도하셨듯이 int와 함께 사용하려면 시도하셨던 방식은 좋지 못하다고 생각합니다.
개인적으로 이 강의를 다시 한 번 보시고 내용들을 정리하셨으면 좋겠습니다. (각 연산자들이 무슨 일을 하는지 숙지하실 필요가 있습니다.)
1
0
뼈해장국으로 든든하게 배채우고 왔는데도 뭘 놓치고 있는지 모르겠습니다.
bool a = false;
if ((!a)==1) 과 if((!a)==2)의 값이 다르게 나오는 이유가 있나요?
0
bool 타입으로 x,y 변수를 선언하고 x,y값 중 하나만 false를 가졌을때 true가 되고 나머지는 항상 false입니다.
&&를 사용해 x가 true, y가 false일때 else가 출력되는 이유는 (false && false) = false 인가요?