C++ switch-case 마스터하기: 문법, 활용법, 실전 예제
switch란?
switch 문은 변수를 한 번 평가하고 일치하는 case 레이블로 실행을 분기시켜 다중 분기 결정을 단순화합니다.
변수의 값에 따라 코드 블록을 선택하는 깔끔하고 효율적인 if…else if… 래더라고 생각하면 됩니다.
이 C++ 튜토리얼에서 배울 내용:
- switch 문이란 무엇인가
- 언제 switch를 사용하는가
break 키워드의 역할
- 문법과 구조
- 실전 예제
언제 switch를 사용하는가?
단일 변수를 고정된 상수 집합과 비교해야 할 때 switch가 이상적입니다. 긴 if…else if… 체인보다 더 명확하고 빠른 코드를 생성합니다.
break 키워드
switch 내부에서 break는 현재 case를 종료하여 후속 case로의 폴스루(fall-through)를 방지합니다. 생략 시 실행이 다음 case로 계속됩니다.
컴파일러가 break를 만나면 제어는 switch의 닫는 중괄호 다음 문장으로 이동합니다.
문법
일반적인 구조:
switch (variable) {
case value1:
// 코드
break;
case value2:
// 코드
break;
default:
// 코드
}
- variable – 평가할 표현식
- case – 비교할 상수 값
- break – switch 블록 실행 중지
- default – 선택 사항; 어떤 case도 일치하지 않을 때 실행
예제 1
#include <iostream>
using namespace std;
int main() {
int x = 20;
switch (x) {
case 10:
cout << "X is 10";
break;
case 20:
cout << "X is 20";
break;
case 30:
cout << "X is 30";
break;
default:
cout << "X is not 10, 20 or 30";
break;
}
return 0;
}
출력:

코드 스크린샷:

코드 설명:
- 콘솔 I/O를 위해
<iostream> 포함
- 간결성을 위해
std 네임스페이스 사용
- 진입점으로
main() 정의
int x = 20; 선언
switch(x)로 x를 상수들과 비교
- Case 10: "X is 10" 출력
- Case 20: "X is 20" 출력
- Case 30: "X is 30" 출력
- Default: 10, 20, 30 이외 값 처리
- 각 case는
break;로 끝나 폴스루 방지
- 성공 실행을 나타내기 위해 0 반환
예제 2
#include <iostream>
using namespace std;
int main() {
int choice;
cout << "Enter 1, 2 or 3: ";
cin >> choice;
switch (choice) {
case 1:
cout << "Choice 1";
break;
case 2:
cout << "Choice 2";
break;
case 3:
cout << "Choice 3";
break;
default:
cout << "Not 1, 2 or 3";
break;
}
}
출력:

코드 스크린샷:

코드 설명:
- I/O를 위해
<iostream> 포함
std 네임스페이스 사용
int choice; 선언
- 사용자 프롬프트: "Enter 1, 2 or 3: "
- 입력을
choice에 읽기
choice로 switch하여 일치하는 case로 분기
- Case 1: "Choice 1" 출력
- Case 2: "Choice 2" 출력
- Case 3: "Choice 3" 출력
- Default: 기타 입력 처리
- 각 case는
break;로 끝남
요약
- switch는 중첩된
if…else if… 문의 간결한 대안입니다.
- 문법이 더 깔끔하고 실행이 일반적으로 더 빠릅니다.
- 변수가 여러 상수 값과 매칭되어야 할 때 사용하세요.
- 각
case는 변수를 고유한 값과 비교합니다.
break 키워드는 의도하지 않은 폴스루를 방지합니다.
- 선택적
default 절은 매칭되지 않는 case를 처리합니다.