Bibi's DevLog ๐ค๐
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ์กฐ๊ฑด๋ฌธ2: switch-case , if๋ฌธ๊ณผ ๋น๊ต, switch-case ์กฐ๊ฑด ๋ฒ์๋ก ์ค์ ํ๊ธฐ ๋ณธ๋ฌธ
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ์กฐ๊ฑด๋ฌธ2: switch-case , if๋ฌธ๊ณผ ๋น๊ต, switch-case ์กฐ๊ฑด ๋ฒ์๋ก ์ค์ ํ๊ธฐ
๋น๋น bibi 2020. 10. 20. 14:37* ์ด ๊ธ์ ์ธํ๋ฐ์์ ์ ๊ณตํ๋ ํธ๋ ์ค๋์ ์ ๋ฃ ๊ฐ์ '์ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์๋ณด๋ Javascript ์ ๋ฌธ - ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ ์ฝ์ค ๋ ๋ฒจ1'๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๊ฐ์ ๋ด์ฉ์ ๋ํด, ์ ๊ฐ ํ๊ธฐํ๊ณ ๊ตฌ๊ธ๋งํ ๋ด์ฉ์ด ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ์ด๋ณด์ธ ์ ๊ฐ ์ดํดํ ๋๋ก ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋ถ์ ํํ ๋ด์ฉ์ด ์์ ์ ์์์ ๊ฐ์ํด ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ ์ธํ๋ฐ ์ธก ๋ต๋ณ์ ๋ฐ์ ์ ์ด ์์ผ๋(https://bibi6666667.tistory.com/37), ์ ์๊ถ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด ๋ณดํธ ๋ชจ๋(๋น๊ณต๊ฐ)๋ก ์ ํํ๊ฒ ์ต๋๋ค.
switch-case ๋ฌธ๋ฒ
- if๋ฌธ๊ณผ ๋๋ถ์ด ๋ง์ด ์ฌ์ฉํ๋ ๋ถ๊ธฐ๋ฌธ/์กฐ๊ฑด๋ฌธ. ( = ์ฝ๋์ ์งํ๋ฐฉํฅ์ ๋ฐ๊พธ๋ ๋ช ๋ น! )
- ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ๋ฐ๋ผ ๊ฐ๊ฐ ๋ค๋ฅธ ์ฝ๋๋ฅผ ์คํํ๋ ๋ถ๊ธฐ๋ฌธ์ ๋๋ค.
- if๋ฌธ ๋งํผ ์์ฃผ ์ฌ์ฉ๋์ง ์์ง๋ง, ์ํฉ์ ๋ฐ๋ผ if ์ else if๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์จ์ผ ํ๋ ์ํฉ์ ํผํ๊ฒ ํด ์ค๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ switch-case ๋ฅผ ์๋ฉด ๋ ๋์ ์ฝ๋๋ฅผ ์งค ์ ์๊ฒ ๋๋ค.
๋ฌธ๋ฒ
var value;
switch(value) {
case ๊ฐ1:
//value == ๊ฐ1์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
break;
case ๊ฐ2:
//value == ๊ฐ2์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
break;
//...
default:
//์์ชฝ์ ํด๋น๋์ง ์๋ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
}
var value; ๋ก ๋ณ์ ๊ฐ์ ์ ์ธ.
switch(๋ณ์๋ช ) { // ๋ณ์์ ๊ฐ์ ๋ฐ๋ผ์ ์คํ๋๋ ์ฝ๋๊ฐ ๋ฌ๋ผ์ง๋ค!
case ๊ฐ1 :
// value == ๊ฐ1์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
break;
case ๊ฐ2 :
// value == ๊ฐ2์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
break;
...
default :
// ์์ ๊ฒฝ์ฐ๋ค(value=๊ฐ1/๊ฐ2/..) ๋ชจ๋์ ํด๋น๋์ง ์์ ๋ ์คํํ ์ฝ๋.
}
โ switch-case๋ฌธ์์ case์ break๋ ์์ผ๋ก ์กด์ฌํ๋ค.
case์ case ์ฌ์ด์๋ ๋ฐ๋์ break๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ์ฝ๋๊ฐ ์ ๋๋ก ์๋ํ๋ค.
(break์์ด switch-case๋ฌธ์ ์ฌ์ฉํ ์๋ ์์ง๋ง ๊ทธ๊ฑด ์์ฉ๋ฒ์ ! ๋์ค์ ๋ฐฐ์ฐ๊ธฐ)
โ break;๋ 1. ๋ฃจํ๋ฅผ ๋น ์ ธ๋๊ฐ ๋ 2. switch๋ฅผ ๋น ์ ธ๋๊ฐ ๋ ๋ ๋ค ์ฌ์ฉ๋๋ค.
++ ๋ง์ฝ switch-case๋ฌธ์์ case๋ณ ์กฐ๊ฑด์ "์ผ์น=="๊ฐ ์๋ "๋ฒ์ > < <= >= .." ๋ก ์ค์ ํ๊ณ ์ถ๋ค๋ฉด,
์๋์ ๊ฐ์ ํ์์ผ๋ก ์ง๋ฉด ๋๋ค.
var value; ๋ก ๋ณ์ ๊ฐ์ ์ ์ธ.
switch(true) { // case์์ ๋ฒ์๋ฅผ ํ๋จํ๊ณ ์ถ์ ๋๋ switch() ์๊ดํธ ์์ true๋ฅผ ๋ฃ๋๋ค.
case (value>๋ฒ์) : // case๋ณ๋ก ์๊ดํธ ์์ ๋ฒ์ ์กฐ๊ฑด์ ์ ๋๋ค.
// value == ๊ฐ1์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
break;
case (value>๋ฒ์ && value<=๋ฒ์) :
// value == ๊ฐ2์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
break;
...
default :
// ์์ ๊ฒฝ์ฐ๋ค(value=๊ฐ1/๊ฐ2/..) ๋ชจ๋์ ํด๋น๋์ง ์์ ๋ ์คํํ ์ฝ๋.
}
์์
Q. ์ ์๊ฐ 10์ ์ด๋ฉด A, 9์ ์ด๋ฉด B, ๊ทธ ์ธ์๋ C๋ฅผ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ธ์.
if๋ก ๊ตฌํ
var score = prompt('์ ์๋ฅผ ์
๋ ฅํ์ธ์');
if (score === 10) {
console.log('A');
} else if (score == 9) {
console.log('B');
} else {
console.log('C');
}
switch-case ๋ก ๊ตฌํ
var score = prompt('์ ์๋ฅผ ์
๋ ฅํ์ธ์');
switch (score) {
case 10:
console.log('A');
break;
case 9:
console.log('B');
break;
default:
console.log('C');
}
+ ์ฌํํ์ต
ํผ์์ ๋ง๋ค๊ณ ๊ตฌ๊ธ๋ง์ผ๋ก ํผ ์ฌํ ๋ฌธ์ .
Q. ์ ์๊ฐ 10์ ์ด์์ด๋ฉด A+, 5์ ์ด์ 10์ ๋ฏธ๋ง์ด๋ฉด B+, 5์ ๋ฏธ๋ง์ด๋ฉด C+๋ฅผ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ธ์.
var score = prompt("์ ์๋ฅผ ์
๋ ฅํ์ธ์");
switch (true) {
case (score >= 10):
console.log("10์ ์ด์์ A+์
๋๋ค");
break;
case (score >= 5 && score < 10):
console.log("5์ ์ด์ 10์ ๋ฏธ๋ง์ B+์
๋๋ค");
break;
default:
console.log("5์ ๋ฏธ๋ง์ ๋ชจ๋ C+์
๋๋ค");
}