switch

switch/case 분기 규칙

switch는 정수형·열거형 표현식 하나를 평가해 일치하는 case 상수 라벨로 점프합니다. 범위 조건이나 복합 조건은 if가 더 맞습니다.

case 라벨과 종료 지점

constant label

분기 값

switch(expr)의 expr은 한 번 평가되며 case 라벨은 중복 없는 컴파일타임 상수여야 합니다.

case 선택

일치 라벨이 없으면 default로 갑니다. default 위치는 자유지만 읽기 쉽게 끝에 두는 경우가 많습니다.

fallthrough

break가 없으면 다음 라벨 코드까지 실행됩니다. 의도한 경우 [[fallthrough]]로 경고를 줄입니다.

enum과 범위

enum은 빠진 값을 경고로 잡기 쉽고, x < 10 같은 범위 분기는 case로 직접 표현할 수 없습니다.

exprcase/defaultstatementsbreak
switch fallthrough

switch는 값 분류용입니다. 구간, 문자열 패턴, 여러 조건 조합은 if/else나 값을 미리 enum·카테고리로 변환한 뒤 분기하는 편이 안전합니다.