ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฆฌ์กํธ์์ ๊ฐ๊ฐ์ด ์ฌ์ฉ๋๋ switch๋ฌธ.
๊ธฐ๋ฅ์ if๋ฌธ๊ณผ ๋น์ทํด๋ณด์ด๋๋ฐ ์์ฃผ ์จ๋ณธ์ ์ด ์์ด์ ๋์ ์ฐจ์ด๊ฐ ๊ถ๊ธํด์ก๋ค.
์๊ณ ์๋ ๋ด์ฉ
๐if๋ฌธ
ํํ :
if(์กฐ๊ฑด) {
๋ก์ง1
} else {๋ก์ง2
};
์ค๋ช : if๋ฌธ์ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋ ๋ก์ง1์ด ์คํ๋๊ณ ๊ฑฐ์ง์ผ ๋ ๋ก์ง2๊ฐ ์คํ๋๋ค.
๋ก์ง์๋ ๋ณ์ ์ ์ธ, ํจ์, ์ผํญ์ฐ์ฐ์ ๋ฑ ๋ค์ํ ๊ฐ์ด ๋ค์ด๊ฐ ์ ์๋ค.
๐switch๋ฌธ
ํํ :
switch (์์) {
case "a"
return "a-1"
break;
case "b"
return "b-1"
default :
return "c-1"
};
์ค๋ช : ์ธํ์ผ๋ก ๋ค์ด์จ ์์์ ๊ฐ์ด a๋ผ๋ฉด a-1์, b๋ผ๋ฉด b-1์, ๊ทธ ๋ฌด์๋ ์๋๋ผ๋ฉด c-1์(default์ ๊ฐ) ๋ฐํํ๋ค.
break๋ฅผ ๋ง๋๋ฉด ๊ทธ ์ฆ์ ๋ก์ง์ด ์ข ๋ฃ๋๋ฉฐ ์ดํ ๋ก์ง์ ์คํ๋์ง ์๋๋ค. break๊ฐ ์์ผ๋ฉด ๋ชจ๋ ์คํ๋๋ค.
case์ return์๋ ๊ฐ์ ํ์ ์ ๊ฐ๋ง ์ฌ ์ ์๋ค.
(? ์ ํํ์ง ์์ง๋ง ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ)
์ค์ ๋ด์ฉ
๐switch๋ฌธ
const findName = (name: string) => {
switch(name) {
case "์ฒ ์":
console.log("์ฒ ์๋ ๋๋์ด์
๋๋ค.")
break;
case "์ํฌ":
console.log("์ํฌ๋ ๋๋์ด์
๋๋ค.")
break;
default:
console.log("๋ชจ๋ ๋๋์ด์
๋๋ค.")
}
}
์์ ์์ ์์ name์ด๋ผ๋ ๋งค๊ฐ๋ณ์๊ฐ ๋น๊ตํ ๊ฐ์ด ๋๋ฉฐ
'์ฒ ์', '์ํฌ'๊ฐ ์กฐ๊ฑด๊ฐ console.log๋ ๋์ํ๋ ๋ฌธ์ฅ์ด ๋๋ค.
+ case ์๋ : ๋ฅผ ๊ผญ ๋ถ์ด๊ธฐ
์ถ๋ ฅ๊ฐ :
findName("์ฒ ์") // "์ฒ ์๋ ๋๋์ด์
๋๋ค."
๋ง์ฝ break๋ฅผ ์ฐ์ง ์๋๋ค๋ฉด ๋ชจ๋ case๊ฐ ์คํ์ด ๋๋ค.
findName("์ฒ ์")
// ์ฒ ์๋ ๋๋์ด์
๋๋ค. ์ํฌ๋ ๋๋์ด์
๋๋ค. ๋ชจ๋ ๋๋์ด์
๋๋ค.
[ํน์ง]
- jump-table์ ์ฌ์ฉํ์ฌ ํ ๋ฒ์ ์ํ๋ ์กฐ๊ฑด์ ์ด๋์ด ๊ฐ๋ฅ(๋จ ํ ๋ฒ์ ํ๊ฐ)
- ์ฌ๋ฌ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋์์ ๊ฒ์ฌํ ์ ์์ผ๋ฉฐ, ๊ฐ case ๋ฌธ์ ์๋ก ์ค๋ณต๋์ง ์์์ผ ํจ.
- ๊ฐ case ๋ฌธ์ ๋ง์ง๋ง์๋ break; ๋ฌธ์ ์ฌ์ฉํ์ฌ ํด๋น case ๋ฌธ์ ์คํ์ ์ค๋จ
- default ๋ฌธ์ ์ ํ์ฌํญ
[์ฅ์ ]
- ๊ฐ๋ ์ฑ
- ๋น๊ต์ ์ข์ ๋ฒ์(ํน์ ํ ๊ฐ)์์ ์ฌ์ฉ
- ์ ์ง๋ณด์ ์ธก๋ฉด์์ ๊ด๋ฆฌ ์ ์ฉ (๊ฐ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋ช ํํ๊ฒ ์ ์)
- ์ผ๋ฐ์ ์ผ๋ก ์ฑ๋ฅ์ด ์ข์ ์คํ ์๋ ํฅ์
[๋จ์ ]
- ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ ๋์ผ ์ฌ๋ถ๋ฅผ ๊ฒ์ฌ
๋ฐ๋ผ์ ๋ณต์กํ ์กฐ๊ฑด์ ์ฒ๋ฆฌํ๋ ๋ฐ์ ๋ถ์ ํฉ - ๊ธธ์ด๊ฐ ๊ธธ์ด์ง ๊ฒฝ์ฐ์ ๊ฐ๋ ์ฑ์ด ๊ฐ์
- ๋์ผํ ์ฝ๋์ ๋ฐ๋ณต
๐if๋ฌธ
์์ ์์ ๋ฅผ if๋ฌธ์ผ๋ก ๋ฐ๊พผ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
const findName = (name: string) => {
if(name === '์ฒ ์') console.log("์ฒ ์๋ ๋๋์ด์
๋๋ค.")
else if(name === '์ํฌ') console.log("์ํฌ๋ ๋๋์ด์
๋๋ค.")
else console.log("๋ชจ๋ ๋๋์ด์
๋๋ค.")
}
[ํน์ง]
- ์ํ๋ ์กฐ๊ฑด์ด ๋์ฌ ๋๊น์ง ์์ฐจ์ ์ผ๋ก ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ๋์ฉ ๋น๊ต
- ์ฐธ๊ณผ ๊ฑฐ์ง์ ๋ฐ๋ผ ์กฐ๊ฑด์ ํ๋ณ
- ์ ํํ ์กฐ๊ฑด๊ณผ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ ค
[์ฅ์ ]
- ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋์ํ ์ ์์ด ์ ์ฐํ๊ณ ๋ค์ํ ์ํฉ์ ๋์ ๊ฐ๋ฅ
- ํ๋ก๊ทธ๋จ์ ํ๋ฆ ์ ์ด
- ์ฌ๋ฌ ๊ฐ์ ์กฐ๊ฑด์ ๋์์ ๊ฒ์ฌ
- ๋ค์ํ ์กฐ๊ฑด์ ์์ฐจ์ ์ผ๋ก ๊ฒ์ฌ
- ๋ณต์กํ ์ํฉ์ ๋์ ๊ฐ๋ฅ
[๋จ์ ]
- ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง
- ์ ์ง๋ณด์์ ๋น๊ต์ ์ด๋ ค์
- ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์
๐switch๋ฌธ๊ณผ if๋ฌธ, ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์๊น?
- if๋ฌธ
- ๊ฐ๋ณ์ ์ธ ์กฐ๊ฑด์ ์ฒ๋ฆฌํด์ผ ํ๊ฑฐ๋ ๋ฒ์๋ฅผ ๋น๊ตํ ๋
- ๋ณต์กํ ์กฐ๊ฑด์ด ํ์ํ ๊ฒฝ์ฐ
- ๋ค์ํ ์กฐ๊ฑด์ ์กฐํฉํ์ฌ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ
- switch๋ฌธ
- ๊ฐ์ ์ผ์น ์ฌ๋ถ์ ๋ฐ๋ผ ๋ถ๊ธฐ ์ฒ๋ฆฌํ ๋
- ์ฌ๋ฌ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ช ํํ๊ฒ ์ฒ๋ฆฌํ ๋
- ๊ฐ๊ฒฐํ๊ณ ๋ช ํํ ๋ถ๊ธฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ
์ฐธ๊ณ : https://velog.io/@ahsy92/JaveScript-Switch-If
'Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ! includes('@') (0) | 2025.01.24 |
|---|---|
| typeof๋ฅผ ํตํด ์๋ฃํ์ ํ์ธํด์ผ ํ๋ ์ด์ (0) | 2025.01.24 |
| [๐ฆ] ๋จ์ถ ํ๊ฐ (Short Circuit Evaluation) (0) | 2025.01.20 |
| [๐ฆ] ํ์ดํ ํจ์ (Arrow function) (0) | 2025.01.20 |
| [๐ฆ] JS ๋ฌธ๋ฒ - Rest operator (0) | 2025.01.20 |