17.4 if 조건문에서 실수와 문자 비교하기

지금까지 if 조건문에서 정수끼리 비교를 했습니다. 정수가 아닌 실수나 문자도 비교할 수 있습니다.

if_char.c

#include <stdio.h>
 
int main()
{
    float num1 = 0.1f;
    char c1 = 'a';
 
    if (num1 == 0.1f)  // 실수 비교
        printf("0.1입니다.\n");
 
    if (c1 == 'a')     // 문자 비교
        printf("a입니다.\n");
 
    if (c1 == 97)      // 문자를 ASCII 코드로 비교
        printf("a입니다.\n");
 
    return 0;
}

실행 결과

0.1입니다.
a입니다.
a입니다.

비교할 변수와 값, 변수와 변수는 자료형을 맞춰주어야 합니다. 단, 실수는 연산한 뒤 반올림 오차가 발생할 수 있으므로 반올림 오차를 감안하여 비교합니다. 그리고 문자 자료형은 c1 == 'a'처럼 문자로 비교하거나, c1 == 97처럼 ASCII 코드로 비교해도 됩니다. ASCII 코드 97은 'Unit 9 문자 자료형 사용하기'의 표 9‑2에서 'a'에 해당합니다.