18.2 else와 세미콜론

if와 마찬가지로 else도 세미콜론을 붙이지 않도록 주의해야 합니다.

if_else_semicolon.c

#include <stdio.h>

int main()
{
    int num1 = 10;

    if (num1 == 10)
    {
        printf("10입니다.\n");
    }
    else;    // else에 세미콜론을 붙이면 안 됨
    {
        printf("10이 아닙니다.\n");    // else에 세미콜론을 붙였으므로 
                                      // if의 결과와는 관계 없이 항상 실행됨
    }

    return 0;
}

실행 결과

10입니다.
10이 아닙니다.

else에 세미콜론을 붙여 버리면 그 뒤에 오는 코드와는 관계가 없어져 버립니다. 따라서 조건식의 결과와는 관계 없이 항상 실행됩니다.