switch 실행 흐름

먼저 실행을 시작할 레이블을 고르고, 그 뒤에는 문장 순서대로 흐른다

switch는 표현식을 한 번 평가해 `case` 상수식이나 `default` 레이블 중 실행 시작점을 고른다. `case`와 `default`는 블록이 아니라 레이블이기 때문에, 시작한 뒤에는 `break`를 만날 때까지 아래 문장으로 계속 흐를 수 있다.

1 평가 switch 표현식을 한 번 계산 switch (choice) 결과 값은 뒤의 case 상수식들과 비교할 기준이 된다.
2 비교 case 상수값들과 매칭 case 1: / case 'A': / case Menu::Save: 일치하는 레이블이 있으면 그 위치부터 실행을 시작한다.
3 불일치
default 있음 `default:` 레이블부터 실행한다.
default 없음 switch 본문을 실행하지 않고 다음 코드로 간다.
레이블은 경계가 아니다 선택된 case 아래 문장부터 순서대로 실행한다.
`break;`를 만나면 가장 가까운 switch를 빠져나와 switch 다음 문장으로 이동한다.
`break;`가 없으면 다음 case/default 레이블 아래 문장까지 fall-through될 수 있다.
의도적 fall-through C++17 이상에서는 `[[fallthrough]];`로 의도를 드러낼 수 있다.