다음 코드의 실행 결과는?

과목: C++

문제 번호: 3404

hard
다음 코드의 실행 결과는?
int level = 2;
switch (level) {
    case 1:
        cout << "Beginner ";
        // break 생략
    case 2:
        cout << "Intermediate ";
        // break 생략
    case 3:
        cout << "Advanced ";
        break;
    default:
        cout << "Unknown";
}
A. Intermediate
B. Intermediate Advanced
C. Beginner Intermediate Advanced
D. Advanced

정답: B



⦁ level이 2이므로 case 2:부터 실행이 시작됩니다

⦁ break가 생략되어 "fall-through" 현상이 발생합니다

⦁ 단계별 실행 과정:
1. case 1: → 1 ≠ 2 (건너뜀)
2. case 2: → 2 = 2 (일치!) → "Intermediate " 출력
3. break가 없으므로 다음 case로 계속 진행
4. case 3: → "Advanced " 출력
5. break를 만나면 switch 문 종료

⦁ Fall-through의 특징:
⦁ break 없으면 다음 case도 자동 실행
⦁ 의도적으로 사용하기도 하지만 주로 실수로 발생
⦁ 여러 case를 연속으로 처리할 때 활용

⦁ 최종 출력: "Intermediate Advanced "

⦁ default는 실행되지 않습니다 (이미 일치하는 case를 찾았으므로)

💡 학습 팁

이 문제를 포함한 C++ 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.