반응형
C 언어에서 100 < X < 200을 표현하고 싶다면
(100 < X) && (X < 200)
으로 표현해야 한다.
왜냐면
C 언어에서 100 < X < 200은
100 < X 부터 계산을 해주고,
그다음에 X < 200을 계산하기 때문이다.
이게 무슨 문제냐.
만약에 X 값이 50이라면
100 < 50은
False니까 0을 반환할 것이다. C언어에서 False는 0을 반환하고 True면 1을 반환하니까.
그 후에는 X < 200을 계산해준다.
아까 0이 반환됐으니까
0 < 200이 계산된다.
200은 0보다 큰 게 맞다.
즉 true니까 1이 반환된다.
X의 값이 50이 아닌 150이라면 어떻게 될까?
X값이 150이라면
100 < X는
100 < 150이 된다. 150은 100보다 크니까 True다.
True는 c 언어에서 1로 반환하니까 1이 반환된다.
X < 200에서 X에 반환된 1을 대입하면
1 < 200이다.
200은 1보다 크다. 즉 True니까 여기서도 결과적으로 1이 반환된다.
즉 100 < X < 200에서
X의 값이 100보다 크든 작든 항상 1이 반환되는 거다.
그래서 AND연산자인 &&를 사용해야 한다.
AND연산자는 동시에 두 가지 조건을 만족해야 하는 걸 의미한다.
(100 < X) && (X < 200)
에선 X가 100보다 크면서 X가 200보다 작아야 함을 뜻한다.
반응형
'BOX-IT > C++' 카테고리의 다른 글
[C++] strcpy는 뭐고, 왜 쓰는 걸까? (1) | 2022.04.16 |
---|---|
[C++] ‘strcpy’ was not declared in this scope 해결방법 (0) | 2022.04.11 |
[C++] #include <stdio.h>는 뭐고, 왜 쓰는 걸까? (8) | 2022.04.04 |
[C++] Scanf 함수의 정의와 사용 방법 (0) | 2022.03.27 |
C 포인터 개념을 소설로 쉽게 써서 정리한 글 (0) | 2022.03.22 |