📚 PHP 초급 - 4주차 - 02 switch 문

2025. 6. 28. 08:19프로그램/PHP 초급

📚 PHP 초급 - 4주차 - 02 switch 문

안녕하세요! PHP 초급 강좌 4주차 두 번째 시간입니다. 지난 시간에는 다양한 #연산자에 대해 알아보았는데요. 이번 시간에는 조건문 중 하나인 #switch 문에 대해 자세히 알아보겠습니다.

1. switch 문이란?

#switch 문은 하나의 변수나 표현식의 값에 따라 여러 코드 블록 중 하나를 실행할 때 사용되는 #조건문입니다. #if-else if-else 문과 유사하지만, 특정 값이 명확하게 정해져 있을 때 더욱 간결하고 가독성 좋은 코드를 작성할 수 있습니다.

2. switch 문의 기본 구조

#switch 문의 기본 구조는 다음과 같습니다.

PHP
 
<?php
switch (변수 또는 표현식) {
    case 값1:
        // 변수 또는 표현식이 값1일 때 실행될 코드
        break;
    case 값2:
        // 변수 또는 표현식이 값2일 때 실행될 코드
        break;
    case 값3:
        // 변수 또는 표현식이 값3일 때 실행될 코드
        break;
    default:
        // 위의 어떤 case에도 해당하지 않을 때 실행될 코드
        break;
}
?>
  • switch (변수 또는 표현식): 비교할 변수나 표현식을 지정합니다.
  • case 값: switch 괄호 안의 값과 일치하는 경우 해당 case 블록 내의 코드가 실행됩니다.
  • break: 해당 case 블록의 실행을 중단하고 switch 문을 빠져나가게 합니다. #break 문이 없으면 일치하는 case 이후의 모든 case가 연달아 실행됩니다. (이를 fall-through라고 합니다.)
  • default: 어떤 case에도 일치하는 값이 없을 때 실행되는 선택적 블록입니다. #else 문과 유사한 역할을 합니다.

 

3. switch 문 예제

예제 1: 요일에 따른 메시지 출력

PHP
 
<?php
$day = "월요일";

switch ($day) {
    case "월요일":
        echo "한 주의 시작입니다! 힘내세요.";
        break;
    case "수요일":
        echo "수요일은 수수하게! 벌써 주중이네요.";
        break;
    case "금요일":
        echo "불금! 주말이 기다려집니다.";
        break;
    default:
        echo "오늘은 평범한 하루입니다.";
        break;
}
?>

위 코드에서는 $day 변수의 값에 따라 다른 메시지를 출력합니다. 만약 $day가 "화요일"이라면 default 블록의 메시지가 출력됩니다.

예제 2: 점수에 따른 학점 부여

PHP
 
<?php
$score = 85;
$grade = '';

switch (true) { // true를 사용하여 조건식을 활용
    case ($score >= 90):
        $grade = "A학점";
        break;
    case ($score >= 80):
        $grade = "B학점";
        break;
    case ($score >= 70):
        $grade = "C학점";
        break;
    case ($score >= 60):
        $grade = "D학점";
        break;
    default:
        $grade = "F학점";
        break;
}

echo "점수: " . $score . "점, 학점: " . $grade;
?>

이 예제에서는 switch (true)를 사용하여 각 case에 조건식을 넣었습니다. 이렇게 하면 특정 범위의 값에 따라 다른 동작을 수행하도록 만들 수 있습니다.

 

4. switch 문 사용 시 주의할 점

  • break 문의 중요성: #break 문을 생략하면 의도치 않게 여러 #case 블록이 실행될 수 있습니다. 이를 #fall-through라고 하며, 특정 상황에서 유용하게 사용될 수도 있지만, 일반적으로는 명시적으로 #break를 사용하는 것이 좋습니다.
  • 동등 연산자 (==) 사용: #switch 문은 #값을 비교할 때 #느슨한 동등 연산자(==)를 사용합니다. 즉, 데이터 타입이 달라도 값이 같으면 일치한다고 판단합니다. 엄격한 비교(===)가 필요하다면 #if 문을 사용하는 것이 더 적합할 수 있습니다.
  • 복잡한 조건은 if 문으로: #switch 문은 단일 값에 대한 비교에 최적화되어 있습니다. 여러 조건이 복합적으로 얽혀 있거나, 범위 비교 등 복잡한 논리가 필요한 경우에는 #if-else if-else 문을 사용하는 것이 가독성 및 유지보수 측면에서 더 좋습니다.

이번 시간에는 #PHP의 #switch 문에 대해 자세히 알아보았습니다. 특정 값에 따른 분기 처리가 필요할 때 #switch 문을 사용하여 코드를 더욱 간결하고 효율적으로 작성할 수 있습니다. 다음 시간에는 반복문에 대해 알아보겠습니다.