C 기본 문법 – 조건문과 반복문 – 1 – switch문

C 기본 문법 – 조건문과 반복문 – 1편: switch문 완전 정복

안녕하세요, 성실히 C 언어를 배워가고 계신 여러분 😊
이번 시간에는 조건문 중에서도 if문보다 깔끔하게 여러 조건을 처리할 수 있는
**switch문**에 대해 알아보려고 해요!

🧠 switch문은 마치 “다양한 선택지 중 하나를 고르는 자판기” 같아요.
상황에 따라 여러 케이스 중 하나를 선택해서 실행할 수 있도록 도와주는 멋진 문법이에요!

특히 숫자, 문자 같은 정수 기반 분기 처리에 탁월해서
메뉴 처리, 상태 분기, 키보드 입력 제어 등 실전에서 굉장히 자주 쓰인답니다.

그럼 이제 아주 쉽게, 그리고 꼼꼼하게 switch문을 배워봅시다!


switch문의 기본 구조

switch (변수 또는 값) {
    case 값1:
        실행문1;
        break;
    case 값2:
        실행문2;
        break;
    ...
    default:
        실행문기본;
}

설명:

  • switch: 판단할 변수나 식을 넣어요.
  • case: 변수 값이 해당 값이면 이 코드 실행!
  • break: 해당 case 실행 후 switch문을 빠져나감
  • default: 아무 case와도 맞지 않으면 실행됨 (선택사항)

예제로 바로 이해하기

#include <stdio.h>

int main() {
    int menu = 2;

    switch (menu) {
        case 1:
            printf("짜장면을 선택하셨습니다.
");
            break;
        case 2:
            printf("짬뽕을 선택하셨습니다.
");
            break;
        case 3:
            printf("탕수육을 선택하셨습니다.
");
            break;
        default:
            printf("없는 메뉴입니다.
");
    }

    return 0;
}

출력 결과:

짬뽕을 선택하셨습니다.

🎯 menu가 2일 때, case 2와 일치하므로 해당 코드 실행!


왜 break가 필요할까?

switch문에서는 break를 만나기 전까지 모든 case를 실행합니다.

int menu = 2;

switch (menu) {
    case 1:
        printf("짜장면
");
    case 2:
        printf("짬뽕
");
    case 3:
        printf("탕수육
");
}

출력 결과:

짬뽕
탕수육

⚠️ break가 없으면, 매칭되는 case 이후의 모든 case들이 연속 실행돼요.
이것을 fall-through(떨어짐) 현상이라고 부릅니다!


default는 꼭 써야 하나요?

아니요! 선택사항입니다.
하지만 만약 어떤 case와도 일치하지 않는 값이 들어올 수 있다면
예외 처리를 위해 default를 사용하는 게 좋습니다.

default:
    printf("알 수 없는 입력입니다.
");

문자도 사용할 수 있어요!

char grade = 'B';

switch (grade) {
    case 'A':
        printf("우수
");
        break;
    case 'B':
        printf("양호
");
        break;
    case 'C':
        printf("보통
");
        break;
    default:
        printf("재시험
");
}

📌 switch정수형, 문자형(char) 자료형에만 사용할 수 있습니다!

실수형(float, double)에는 사용할 수 없어요 ❌


여러 case를 한 번에 처리하고 싶을 땐?

int key = 1;

switch (key) {
    case 1:
    case 2:
    case 3:
        printf("1~3 사이의 값입니다.
");
        break;
    default:
        printf("그 외 값입니다.
");
}

💡 여러 case를 같은 결과로 묶을 수 있어 코드가 더 깔끔해져요!


실전 예제: 요일 출력기

int day = 5;

switch (day) {
    case 1:
        printf("월요일
"); break;
    case 2:
        printf("화요일
"); break;
    case 3:
        printf("수요일
"); break;
    case 4:
        printf("목요일
"); break;
    case 5:
        printf("금요일
"); break;
    case 6:
        printf("토요일
"); break;
    case 7:
        printf("일요일
"); break;
    default:
        printf("유효하지 않은 요일입니다
");
}

✅ switch문과 if문 비교

항목 if문 switch문
사용 대상 모든 조건식 정수, 문자 (정확한 값)
조건 수 논리식 여러 개 값의 일치만
가독성 복잡한 조건 적합 여러 케이스 구분에 적합
중첩 처리 가능 가능하지만 권장 X
기본 분기 처리 else default

✨ if문은 조건이 다양할 때,
switch문은 정해진 값 중 하나를 선택할 때 쓰면 좋습니다!


⚠️ switch문 사용 시 주의할 점

주의사항 설명
break 반드시 사용 없으면 다음 case도 실행됨
default는 선택사항 예외 처리 시 필수
case는 중복 금지 같은 값 중복 사용 안 됨
실수형 비교 불가 float, double 불가
중괄호 없이 작성 가능 그래도 가독성을 위해 중괄호 권장

마무리하며 💬

switch문은 여러 가지 선택지 중 하나를 빠르게 처리하고 싶을 때 정말 유용한 도구예요!
특히 메뉴 선택, 상태 처리, 문자 분기 등에서 자주 쓰이기 때문에
꼭 익혀두시면 더 깔끔하고 명확한 코드를 짤 수 있습니다!

다음 편에서는 반복문으로 넘어가서
코드를 자동으로 반복시키는 강력한 기능들(for, while)을 배워볼 거예요 🔁

그럼 오늘도 수고 많으셨고, 언제나 감사합니다!
코딩의 길은 반복과 선택, 그리고 성장의 연속입니다 😊💻

답글 남기기