article thumbnail image
Published 2020. 5. 3. 17:44

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
복사했습니다!