C 언어에서 if는 0일 때 거짓, 0이 아닐 때 참으로 동작합니다. 다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.
#include <stdio.h>
int main()
{
if (2) // 0이 아니므로 참
printf("참\n");
else
printf("거짓\n");
return 0;
}
결과 : 참
if에 2를 넣었는데도 "참"이 출력됩니다.
즉, -4, -3, -2, -1, 1, 2, 3, 4...처럼 0이 아닌 양수와 음수를 넣으면 무조건 참입니다.
실수도 마찬가지로 0.0f는 거짓이며 0.0f가 아닌 값들은 참입니다.
각자 0이 아닌 다양한 양수와 음수를 넣어보세요.
이번에는 0을 넣어봅니다.
#include <stdio.h>
int main()
{
if (0) // 0이므로 거짓
printf("참\n");
else
printf("거짓\n");
return 0;
}
결과 : 거짓
다른 숫자는 모두 참이지만 0만 거짓입니다. 따라서 "거짓"이 출력됩니다.
최근에 나온 언어는 true(참), false(거짓)과 같은 전용 자료형을 가지고 있지만 C 언어는 0을 거짓으로,
그 이외의 값을 모두 참으로 사용합니다.
C 언어를 처음 배우고 나면 다음과 같이 if의 조건식 안에서 = (할당 연산자)를 사용하는 실수를 꽤 하게 됩니다.
조건식에는 == 가 맞다.
조건식에는 = 쓰면 안된다.
조건식에 ==대신 =를 사용하는 실수는 보통 컴파일 에러가 나지 않으므로 잡아내기가 힘들고, 코드가 복잡해지면 눈에 잘 띄지 않습니다.
조건식을 사용할 때는 이 부분을 항상 주의합니다.
'📌 C' 카테고리의 다른 글
C - Call by value & Call by reference (0) | 2020.05.19 |
---|---|
C - 포인터 (0) | 2020.05.19 |