판별 값을 정한다
복잡한 조건식 여러 개라면 switch보다 if 체인이 자연스럽다. switch는 한 값의 선택지에 적합하다.
switch는 여러 조건을 나열하는 도구가 아니라 하나의 판별 값이 어떤 경우인지 분기하는 도구다. fallthrough와 default 정책을 분명히 해야 한다.
복잡한 조건식 여러 개라면 switch보다 if 체인이 자연스럽다. switch는 한 값의 선택지에 적합하다.
의도된 fallthrough는 주석이나 [[fallthrough]]로 남기고, 대부분은 break로 닫는다.
enum class의 모든 값을 처리할지, 알 수 없는 값을 오류로 볼지 정한다.
switch (state) {
case State::Ready: run(); break;
case State::Stopped: cleanup(); break;
default: throw std::runtime_error("unknown state");
}