switch는 보통 정수/문자/열거형(enum)처럼 “딱 떨어지는 값” 분기에 적합case 끝의 break가 흐름을 끊는다 (없으면 다음 case까지 실행될 수 있음)default는 “예외/잘못된 입력”을 안전하게 처리하는 보험switch (choice) {
case 0:
cout << "가위를 냈습니다.";
break;
case 1:
cout << "바위를 냈습니다.";
break;
case 2:
cout << "보를 냈습니다.";
break;
default:
cout << "잘못됨";
break;
}
실전에서는 “숫자 의미”가 헷갈리지 않게 enum을 같이 쓰면 더 좋습니다.
enum RPS { Scissor = 0, Rock = 1, Paper = 2 };
RPS choice = Rock;
switch (choice) {
case Scissor: cout << "가위를 냈습니다."; break;
case Rock: cout << "바위를 냈습니다."; break;
case Paper: cout << "보를 냈습니다."; break;
default: cout << "잘못됨"; break;
}
break는 switch를 즉시 종료합니다.switch (choice) {
case 0:
cout << "0";
// break 없음!
case 1:
cout << "1";
break;
}
// choice가 0이면 "01"이 출력될 수 있음
hp <= 0, score >= 90 && score <= 100 같은 조건switch에서 break를 빼먹으면 어떤 일이 생길까?switch가 if-else if보다 잘 맞는 상황은 어떤 경우일까?0/1/2 대신 enum을 쓰면 뭐가 좋아질까?