다음 코드의 실행 결과는 무엇인가요?

과목: PHP

문제 번호: 2800

hard
다음 코드의 실행 결과는 무엇인가요?
$status = "pending";
switch ($status) {
    case "active":
        echo "활성 ";
        break;
    default:
        echo "기본 ";
        break;
    case "pending":
        echo "대기 ";
    case "inactive":
        echo "비활성";
        break;
}
A. 활성
B. 기본 대기 비활성
C. 대기 비활성
D. 기본

정답: C



⦁ switch문에서는 default의 위치와 상관없이 일치하는 case를 먼저 찾습니다

⦁ 실행 과정:
1. $status = "pending"이 case "pending"과 일치
2. "대기 " 출력
3. break가 없으므로 다음으로 진행 (fall-through)
4. case "inactive"의 "비활성" 출력
5. break를 만나서 종료

⦁ 중요한 개념들:
• default는 어느 위치든 가능하지만 끝에 두는 것이 관례
• case 매칭 후에는 default가 실행되지 않음
• default가 중간에 있으면 break 필수

⦁ 권장사항:
• default는 switch문 끝에 배치
• 모든 case에 break 명시적 작성
• 의도적 fall-through는 주석으로 명시

💡 학습 팁

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