IMCAT.DEV
로그인 가입
PHP 입문 문법

PHP 제어문 (if, switch)

PHP 제어문 (if, switch) — 초급

제어문 (if, switch)

1. 도입 (왜 배워야 하는가)

프로그래밍에서 제어문은 프로그램의 흐름을 제어하는 데 필수적인 요소입니다. 실무에서는 사용자의 입력이나 다른 조건에 따라 프로그램의 동작을 달리해야 할 때가 많습니다. 예를 들어, 쇼핑몰에서는 사용자가 선택한 상품의 재고가 있는지 확인하고, 재고가 없으면 경고 메시지를 출력해야 합니다. 만약 제어문을 사용하지 않는다면, 모든 상황에 대해 별도의 코드를 작성해야 하며, 이는 효율적이지 않고 유지보수가 어려운 코드로 이어질 수 있습니다.

제어문이 없다면, 프로그램은 항상 같은 방식으로만 동작하게 되어, 사용자의 요구를 충족하지 못할 것입니다. 따라서 제어문을 이해하고 활용하는 능력은 프로그래머로서의 필수적인 스킬입니다.

2. 핵심 개념 설명

if 문

if 문은 조건에 따라 코드 블록을 실행할 수 있게 해주는 제어문입니다. 조건이 참일 경우 특정 코드를 실행하고, 그렇지 않으면 다른 코드를 실행하도록 설정할 수 있습니다.
  • 비유: 학생이 시험을 봤다고 가정해 보세요. 학생이 60점 이상을 받으면 합격, 그렇지 않으면 불합격입니다. 이처럼 조건에 따라 결과가 달라집니다.
  • switch 문

    switch 문은 여러 조건을 간단하게 처리할 수 있는 제어문입니다. 특정 변수가 여러 값 중 어떤 것인지에 따라 서로 다른 코드를 실행합니다.
  • 비유: 음식점에서 메뉴를 선택하는 상황을 생각해 보세요. 손님이 특정 메뉴를 선택하면, 그에 따라 주방에서 해당 음식을 준비합니다. 메뉴가 다양해질 때 if 문으로 처리하기 어려운 경우에 유용합니다.
  • 용어설명
    조건문특정 조건에 따라 코드의 흐름을 결정하는 문
    참 / 거짓조건문이 평가한 결과, true 또는 false로 나타냄

    3. 기본 코드 예제

    if 문 예제

    $score = 75;
    
    if ($score >= 60) {
        echo "합격입니다.";
    } else {
        echo "불합격입니다.";
    }
    // 실행 결과: 합격입니다.
  • $score 변수에 75를 할당합니다.
  • if 문은 $score가 60 이상인지 확인합니다. (true)
  • 조건이 참이므로 "합격입니다."를 출력합니다.
  • switch 문 예제

    $fruit = "사과";
    
    switch ($fruit) {
        case "사과":
            echo "사과를 선택했습니다.";
            break;
        case "바나나":
            echo "바나나를 선택했습니다.";
            break;
        default:
            echo "선택한 과일이 없습니다.";
    }
    // 실행 결과: 사과를 선택했습니다.
  • $fruit 변수에 "사과"를 할당합니다.
  • switch 문은 $fruit의 값을 평가하여 해당하는 case를 찾습니다.
  • "사과"에 해당하는 case가 참이므로 "사과를 선택했습니다."를 출력합니다.
  • 4. 실전 활용 예제

    예제 1: 쇼핑몰 장바구니

    쇼핑몰에서 장바구니에 상품을 추가할 때, 재고가 있는지 확인하는 경우를 생각해 보겠습니다.

    $product_stock = 5;
    $requested_quantity = 3;
    
    if ($requested_quantity <= $product_stock) {
        echo "상품을 장바구니에 추가했습니다.";
    } else {
        echo "재고가 부족합니다.";
    }
    // 실행 결과: 상품을 장바구니에 추가했습니다.
  • 사용자가 요청한 수량이 재고보다 적거나 같을 경우, 상품을 장바구니에 추가합니다.
  • 예제 2: 사용자 등급에 따른 할인

    사용자의 등급에 따라 할인율을 적용하는 상황입니다.

    $user_level = "VIP";
    
    switch ($user_level) {
        case "일반":
            $discount = 0;
            break;
        case "회원":
            $discount = 10;
            break;
        case "VIP":
            $discount = 20;
            break;
        default:
            $discount = 0;
    }
    echo "할인율은 {$discount}%입니다.";
    // 실행 결과: 할인율은 20%입니다.
  • 사용자의 등급에 따라 할인율을 다르게 적용합니다.
  • 5. 흔한 실수와 주의사항

    1. 부등호 방향 오류:
    2. - 잘못된 코드:

         if ($score < 60) {
             echo "합격입니다.";
         }

      - 올바른 코드:

         if ($score >= 60) {
             echo "합격입니다.";
         }

      - 주의: 조건을 잘못 설정하면 의도한 결과가 나오지 않습니다.

    3. break 문 누락:
    4. - 잘못된 코드:

         switch ($fruit) {
             case "사과":
                 echo "사과를 선택했습니다.";
             case "바나나":
                 echo "바나나를 선택했습니다.";
                 break;
         }

      - 올바른 코드:

         switch ($fruit) {
             case "사과":
                 echo "사과를 선택했습니다.";
                 break;
             case "바나나":
                 echo "바나나를 선택했습니다.";
                 break;
         }

      - 주의: break 문을 누락하면 여러 case가 연속으로 실행됩니다.

      6. 정리

    5. if 문은 조건에 따라 코드의 흐름을 제어합니다.
    6. switch 문은 여러 조건을 간단하게 처리하는 데 유용합니다.
    7. 조건문을 올바르게 작성하지 않으면 의도한 결과를 얻지 못할 수 있습니다.
    8. 다음에 학습하면 좋은 주제는 반복문 (for, while)입니다. 반복문을 사용하여 특정 코드를 여러 번 실행하는 방법을 배우면, 더 복잡한 로직을 구현할 수 있습니다.