5.7 switch 분기문 빠져나오기: break
앞서 switch 구문을 적용한 코드가 훨씬 효율적인 것 같아 보입니다. 그러나 몇 번 수행해 보면 결과가 조금 이상하게 나오는 것을 확인할 수 있습니다. 예를 들어 사과를 좋아해서 1을 선택하면 사과를 좋아하는 것뿐만 아니라, 키위, 복숭아, 수박 등에 해당하는 case 구문의 문장이 모두 출력됩니다. 만약 키위를 좋아해서 2를 선택하면 키위는 물론이고 복숭아, 수박을 포함하여 case 구문의 끝까지 모든 문장이 수행됩니다. 왜 그럴까요?
switch 구문은 해당하는 case 구문으로 제어가 바로 이동하여 해당하는 문장을 수행한다고 하였습니다. 그러나 해당하는 문장을 수행하고 switch 구문이 끝나야 함을 알려줘야 합니다. “해당하는 구문의 끝은 여기다”라고 알려주는 것이 바로 break입니다. switch 구문에서 break를 만나지 않으면 순차적으로 다음 코드를 수행합니다. 왜 우리가 의도하지 않는 결과가 연속적으로 나왔는지 이해가 되나요?