// education

조건문 (의사결정 if, if-else, switch-case)

조건문은 주어진 조건의 참(True)과 거짓(False) 여부에 따라 프로그램의 실행 길을 갈라지게 만드는 제어문입니다.


1. if ~ else if ~ else 다중 조건문

여러 개의 조건을 순차적으로 검사하여 해당되는 조건 블록만 실행합니다.

#include <stdio.h>

int main(void) {
    int score = 85;

    if (score >= 90) {
        printf("A 학점입니다.\n");
    } else if (score >= 80) {
        printf("B 학점입니다.\n");
    } else if (score >= 70) {
        printf("C 학점입니다.\n");
    } else {
        printf("F 학점입니다.\n");
    }
    return 0;
}

2. switch ~ case 분기문

하나의 정수형 변수 또는 문자 변수의 정밀한 정수 값에 따라 여러 길 중 하나로 바로 빠져나가는 구문입니다.

#include <stdio.h>

int main(void) {
    int ranking = 2;

    switch (ranking) {
        case 1:
            printf("금메달입니다!\n");
            break; // switch문을 탈출
        case 2:
            printf("은메달입니다!\n");
            break;
        case 3:
            printf("동메달입니다!\n");
            break;
        default:
            printf("수고하셨습니다.\n");
            break;
    }
    return 0;
}

3. 조건문 선택 가이드

구 분 if ~ else switch ~ case
조건식 형태 대소 비교(>, <), 범위 조건, 논리 연산자 사용 가능 정수/문자 형태의 일치 여부만 비교
가독성 조건이 많고 복잡하면 복잡해짐 일치하는 특정 값에 따른 분기 시 깔끔함

4. 자주 묻는 질문 (Q&A)

Q. switch-case 문에서 break;를 빠뜨리면 어떻게 되나요? A. break;가 없으면 아래 쪽의 다른 case 블록까지 조건을 무시하고 계속 실행(Fall-through 현상)되는 심각한 오류가 발생합니다.

← 이전수식과 연산자 (산술, 관계, 논리, 대입, 증감 연산자) 다음 →반복문 (for, while, do-while 구문)