조건문은 주어진 조건의 참(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 현상)되는 심각한 오류가 발생합니다.