case 분기와 break가 필요한 이유를 실행으로 확인합니다.
Java 8의 switch 문은 하나의 값을 여러 case와 비교합니다. 일치한 case부터 실행하며 break가 없으면 다음 case까지 이어지는 fall-through가 발생합니다.
예제에서 switch (value) { case X: ...; break; default: ...; } 부분부터 찾으세요. 선언 타입, 실제 객체와 반환값을 한 줄씩 따라가면서 컴파일 단계에서 잡히는 문제와 실행 중 생기는 문제를 구분하세요.
여러 case가 같은 동작을 공유할 때만 의도적으로 case를 연달아 배치하고, 그 외에는 break로 분기를 끝냅니다.
도메인의 유한한 상태는 문자열보다 enum으로 모델링하면 오타와 누락을 컴파일러가 더 잘 찾습니다.
현재 코드를 먼저 실행해 출력과 타입 흐름을 확인한 뒤 ADVANCED 경우를 추가하고 break를 제거했을 때 결과를 비교하세요.
break를 빠뜨려 다음 등급의 코드까지 실행되는 오류를 주의하세요.
직접 바꿔보세요ADVANCED 경우를 추가하고 break를 제거했을 때 결과를 비교하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.