표현식 평가
switch (grade)의 결과 값을 한 번 계산합니다.
switch는 먼저 일치하는 레이블을 찾습니다. 하지만
레이블은 자동으로 실행을 멈추는 벽이 아니므로, 선택된 위치부터
break를 만날 때까지 문장이 이어질 수 있습니다.
switch (grade)의 결과 값을 한 번 계산합니다.
일치하는 case가 있으면 그 위치로 이동합니다.
선택된 레이블 아래 문장부터 순서대로 실행합니다.
break;를 만나면 switch 다음 문장으로 나갑니다.
grade == 'B'일 때의 시작 위치break가 없으면 이어서 실행됩니다.
case 'B' 끝에 break;가 있으면
'B' 처리 코드만 실행한 뒤 switch 바깥으로 빠져나갑니다.
가장 흔하고 안전한 형태입니다.
break;가 없으면
case 'C' 아래 문장까지 이어서 실행될 수 있습니다. 이런
흐름을 fall-through라고 부릅니다.
여러 case가 같은 처리를 공유한다면 비워 둔 case를 연속 배치하거나
C++17의 [[fallthrough]];로 의도를 표시합니다.
case는 “조건 블록”이 아니라 “실행 시작 레이블”입니다.
따라서 각 레이블 아래에서 어디서 멈추는지까지 함께 읽어야 합니다.