분기 선택

동등 비교 목록이면 switch, 조건이 복잡하면 if-else

두 문법은 모두 여러 갈래의 흐름을 만들 수 있습니다. 차이는 조건의 모양입니다. 하나의 값이 고정 상수 중 무엇인지 묻는다면 switch가 읽기 쉽고, 범위나 논리 조합이 필요하면 if-else가 더 적합합니다.

switch가 어울리는 경우

같은 기준값을 여러 상수와 비교할 때 구조가 단순해집니다. 메뉴 번호, 명령 코드, enum 상태처럼 값 목록이 분명할수록 효과적입니다.

동등 비교 정수 계열 case 목록

if-else가 어울리는 경우

범위 비교, 문자열 비교, 여러 변수의 논리 조합은 조건식을 직접 쓸 수 있는 if-else가 더 명확합니다.

범위 조건 문자열 논리 연산
메뉴 선택
choice == 1, choice == 2처럼 같은 변수의 값 목록을 비교합니다.
switch 선택
점수 등급
score >= 90, score >= 80처럼 범위를 비교합니다.
if-else 선택
명령 상태
Command::Save, Command::Open 같은 enum 후보를 비교합니다.
switch 선택
기준값

하나의 정수 계열 값 또는 enum 값인가?

case

각 후보가 컴파일 시간 상수식인가?

break

각 분기 끝에서 의도대로 빠져나오는가?

default

예상 밖의 값을 처리하거나 의도적으로 무시하는가?