더북(TheBook)

age가 9이니 ‘초등학생입니다.’를 출력합니다. 만약 age가 15라면 case의 값을 확인하다가 15를 찾아 ‘중학생입니다.’를 출력하고 break 문을 만나 switch 문을 빠져나가겠죠.

그런데 코드를 보니까 똑같은 문장을 여러 번 작성했습니다. 반복 작업을 쉽게 하려고 코드를 작성하는데, 같은 문장을 여러 번 쓰기 싫겠죠? 이를 해결할 방법이 있습니다.

앞에서 값과 일치하는 case 문을 만날 때까지 아무것도 안 하고 넘어가다가 값과 일치하는 case를 만나면 그 이후에 문장을 모두 수행한다고 설명했죠. 그리고 break 문을 만나면 switch 문을 빠져나가고요. 이러한 작동 원리를 적용해 다음처럼 동일한 문장을 없애버리면 됩니다.

4.4.3 나이구분.c

int main(void) {
    int age = 9;
    switch (age) {
        case 8:
        case 9:
        case 10:
        case 11:
        case 12:
        case 13:
            printf("초등학생입니다.\n");
            break;
       case 14:
       case 15:
       case 16:
            printf("중학생입니다.\n");
            break;
        case 17:
        case 18:
        case 19:
            printf("고등학생입니다.\n");
            break;
        default:
            printf("청소년이 아닙니다.\n");
    }
    return 0;
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.