switch 조건 점검

값의 종류와 case 값이 switch 사용 가능 여부를 결정한다

switch는 모든 조건식을 대신하는 문법이 아닙니다. 기준 표현식은 정수 계열로 평가되어야 하고, 각 case 값은 컴파일 시간에 정해져 있어야 합니다.

가능

정수 계열 값

int, char, enum, bool처럼 정수 계열로 판단할 수 있는 값은 적합합니다.

주의

case는 상수식

case LIMIT:에서 LIMIT은 컴파일 시점에 값이 확정되는 상수여야 합니다. 런타임 변수는 사용할 수 없습니다.

불가

실수·문자열·범위 조건

double, std::string, x < 10 같은 범위·복합 조건은 if가 자연스럽습니다.

상황
switch에 맞는 이유
다시 확인할 점
메뉴 번호
1, 2, 3처럼 고정된 정수 값 중 하나를 고릅니다.
default로 잘못된 번호를 처리합니다.
문자 코드
'A', 'B' 같은 문자 상수와 비교합니다.
case 끝의 break를 확인합니다.
점수 구간
80점 이상 같은 범위 조건은 case 하나로 표현할 수 없습니다.
if / else if로 경계값을 명확히 둡니다.
핵심 기준

같은 변수에 대한 동등 비교가 반복되면 switch를 검토하고, 조건이 범위·문자열·복합 논리라면 if를 선택하세요.