제어 구조 (Control Structures)


switch 문

switch 문은 switch-case 문이라고도 하며, 구조상 if 문과 매우 유사합니다. switch 문은 하나의 표현 식을 여러 개의 값과 비교하여 각각의 값에 대한 다른 명령문을 수행하고 싶을 때 주로 사용합니다. default를 사용하면 switch 문의 표현 식이 모든 case의 값과 다를 때 수행할 기본 명령문을 지정할 수 있습니다.

문법 구조 설명
switch(표현식)
{
  case 값1:
    명령문1;
    break;
  case 값2:
    명령문2;
    break;
  default:
    명령문3;
    break;
}
1) 표현식의 결과가 값1과 같은지 비교
2) 1)의 값이 같으면 명령문1을 수행하고 빠져 나옴
3) 1)의 값이 다르면 표현식의 결과를 값2와 비교
4) 3)의 값이 같으면 명령문2를 수행하고 빠져 나옴
5) 3)의 값이 다르면 명령문3을 수행함
<?php
  $var = 1;
  switch($var)
  {
    case 1:
      echo "var is 1";
      break;
    case 2:
      echo "var is 2";
      break;
    default:
      echo "Error";
      break;
  }
?>
[출력 결과]  
var is 1
  • default의 사용 예
    switch 문을 사용할 때 default는 생략할 수 있습니다.
<?php
  $var = 1;
  switch($var)
  {
    case 1:
      echo "var is 1";
      break;
    case 2:
      echo "var is 2";
      break;
  }
?>
[출력 결과]  
var is 1

break는 각각의 case문에 반드시 사용해야 하는것은 아닙니다. 만약 현재 수행중인 case문에 break가 없으면 break가 나올때까지 다음 case문들이 순차적으로 수행됩니다.

  • break가 생략된 case문
<?php
  $var = 1;
  switch($var)
  {
    case 1:
      echo "3";
    case 2:
      echo "3";
    case 3:
      echo "3";
      break;
    case 4:
      echo "4";
  }
?>
[result]  
333

※ case 표현식 뒤에 콜론(:) 대신 세미콜론(;)을 사용할 수 없습니다.