์จ๋ผ์ธ ๊ฐ์
>PHP - ์ด๊ธ
๐ PHP ์ด๊ธ - 4์ฃผ์ฐจ - 02 switch ๋ฌธ
				์ฃผ์ ํ๋ก๊ทธ๋จ ์คํ
- ํ์ : 10.0
 - ๋ผ์ด์ ์ค: free
 - ์ด์์ฒด์ :
 - ํ์ผ ํฌ๊ธฐ: 0
 
ํผ๋๋ฐฑ ๋ฐ ๋ค์ด๋ก๋
- ์ฌ์ฉ์ ํ์ : 10.0
 - ๋ค์ด๋ก๋ ์: 1
 - ์กฐํ์: 57
 
์ ์กฐ์ฌ ๋ฐ ๋ฑ๋ก ์ ๋ณด
- ์ ์์ฌ: LUZENSOFT
 - ๋ฑ๋ก์ผ: 2025-06-28 08:20:05
 
- ์ค๋ช
๐ 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์ ์กฐ๊ฑด์์ ๋ฃ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํน์  ๋ฒ์์ ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์์ ์ํํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค.
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 ๋ฌธ์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋์ฑ ๊ฐ๊ฒฐํ๊ณ ํจ์จ์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ๋ค์ ์๊ฐ์๋ ๋ฐ๋ณต๋ฌธ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.