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