switch๋ฌธ
๋ณต์์ if
์กฐ๊ฑด๋ฌธ์ switch
๋ฌธ์ผ๋ก ๋ฐ๊ฟ ์ ์์ต๋๋ค.
switch
๋ฌธ์ ์ฌ์ฉํ ๋น๊ต๋ฒ์ ํน์ ๋ณ์๋ฅผ ๋ค์ํ ์ํฉ์์ ๋น๊ตํ ์ ์๊ฒ ํด์ค๋๋ค. ์ฝ๋ ์์ฒด๊ฐ ๋น๊ต ์ํฉ์ ์ ์ค๋ช
ํ๋ค๋ ์ฅ์ ๋ ์์ต๋๋ค.
switch
๋ฌธ์ ํ๋ ์ด์์ case
๋ฌธ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋๊ฐ default
๋ฌธ๋ ์์ง๋ง, ์ด๋ ํ์๋ ์๋๋๋ค.
์์:
switch(x) {
case 'value1': // if (x === 'value1')
...
[break]
case 'value2': // if (x === 'value2')
...
[break]
default:
...
[break]
}
๋ณ์
x
์ ๊ฐ๊ณผ ์ฒซ ๋ฒ์งธcase
๋ฌธ์ ๊ฐ'value1'
๋ฅผ ์ผ์น ๋น๊ตํ ํ, ๋ ๋ฒ์งธcase
๋ฌธ์ ๊ฐ'value2'
์ ๋น๊ตํฉ๋๋ค. ์ด๋ฐ ๊ณผ์ ์ ๊ณ์ ์ด์ด์ง๋๋ค.case
๋ฌธ์์ ๋ณ์x
์ ๊ฐ๊ณผ ์ผ์นํ๋ ๊ฐ์ ์ฐพ์ผ๋ฉด ํด๋นcase
๋ฌธ์ ์๋์ ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค. ์ด๋,break
๋ฌธ์ ๋ง๋๊ฑฐ๋switch
๋ฌธ์ด ๋๋๋ฉด ์ฝ๋์ ์คํ์ ๋ฉ์ถฅ๋๋ค.๊ฐ๊ณผ ์ผ์นํ๋
case
๋ฌธ์ด ์๋ค๋ฉด,default
๋ฌธ ์๋์ ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค(default
๋ฌธ์ด ์๋ ๊ฒฝ์ฐ).
์ค์ ์คํ ๊ฐ๋ฅํ switch
๋ฌธ ์์๋ฅผ ์ดํด๋ด
์๋ค. ์๋ ์์์์ ๊ฐ์กฐ๋ ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค.
let a = 2 + 2;
switch (a) {
case 3:
alert( '๋น๊ตํ๋ ค๋ ๊ฐ๋ณด๋ค ์์ต๋๋ค.' );
break;
case 4:
alert( '๋น๊ตํ๋ ค๋ ๊ฐ๊ณผ ์ผ์นํฉ๋๋ค.' );
break;
case 5:
alert( '๋น๊ตํ๋ ค๋ ๊ฐ๋ณด๋ค ํฝ๋๋ค.' );
break;
default:
alert( "์ด๋ค ๊ฐ์ธ์ง ํ์
์ด ๋์ง ์์ต๋๋ค." );
}
switch
๋ฌธ์ a์ ๊ฐ์ธ 4์ ์ฒซ ๋ฒ์งธ case
๋ฌธ์ ๊ฐ์ธ 3์ ๋น๊ตํฉ๋๋ค. ๋ ๊ฐ์ ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๋ค์ case
๋ฌธ์ผ๋ก ๋์ด๊ฐ๋๋ค.
a์ ๊ทธ๋ค์ case
๋ฌธ์ ๊ฐ์ธ 4๋ ์ผ์นํฉ๋๋ค. ๋ฐ๋ผ์ break
๋ฌธ์ ๋ง๋ ๋๊น์ง case 4
์๋์ ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค.
case
๋ฌธ ์์ break
๋ฌธ์ด ์์ผ๋ฉด ์กฐ๊ฑด์ ๋ถํฉํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐ์ง์ง ์๊ณ ์ด์ด์ง๋ case
๋ฌธ์ ์คํํฉ๋๋ค.
break
๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ์์๋ฅผ ํตํด ์ดํด๋ด
์๋ค.
let a = 2 + 2;
switch (a) {
case 3:
alert( '๋น๊ตํ๋ ค๋ ๊ฐ๋ณด๋ค ์์ต๋๋ค.' );
case 4:
alert( '๋น๊ตํ๋ ค๋ ๊ฐ๊ณผ ์ผ์นํฉ๋๋ค.' );
case 5:
alert( '๋น๊ตํ๋ ค๋ ๊ฐ๋ณด๋ค ํฝ๋๋ค.' );
default:
alert( "์ด๋ค ๊ฐ์ธ์ง ํ์
์ด ๋์ง ์์ต๋๋ค." );
}
์ ์์๋ฅผ ์คํํ๋ฉด ์๋ 3๊ฐ์ alert
๋ฌธ์ด ์คํ๋ฉ๋๋ค.
alert( '๋น๊ตํ๋ ค๋ ๊ฐ๊ณผ ์ผ์นํฉ๋๋ค.' );
alert( '๋น๊ตํ๋ ค๋ ๊ฐ๋ณด๋ค ํฝ๋๋ค.' );
alert( "์ด๋ค ๊ฐ์ธ์ง ํ์
์ด ๋์ง ์์ต๋๋ค." );
switch/case
๋ฌธ์ ์ธ์์ ์ด๋ค ํํ์์ด๋ ์ฌ ์ ์์ต๋๋ค.
switch
๋ฌธ๊ณผ case
๋ฌธ์ ๋ชจ๋ ํํ์ ํํ์์ ์ธ์๋ก ๋ฐ์ต๋๋ค.
์์:
let a = "1";
let b = 0;
switch (+a) {
case b + 1:
alert("ํํ์ +a๋ 1, ํํ์ b+1๋ 1์ด๋ฏ๋ก ์ด ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค.");
break;
default:
alert("์ด ์ฝ๋๋ ์คํ๋์ง ์์ต๋๋ค.");
}
ํํ์ +a๋ฅผ ํ๊ฐํ๋ฉด 1์ด ๋ฉ๋๋ค. ์ด ๊ฐ์ ์ฒซ ๋ฒ์งธ case
๋ฌธ์ ํํ์ b + 1
์ ํ๊ฐํ ๊ฐ(1)๊ณผ ์ผ์นํ์ฃ . ๋ฐ๋ผ์ ์ฒซ ๋ฒ์งธ case
๋ฌธ ์๋์ ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค.
์ฝ๋๊ฐ ๊ฐ์ case
๋ฌธ์ ํ๋ฐ ๋ฌถ์ ์ ์์ต๋๋ค.
case 3
๊ณผ case 5
์์ ์คํํ๋ ค๋ ์ฝ๋๊ฐ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ํ ์์๋ฅผ ์ดํด๋ด
์๋ค.
let a = 3;
switch (a) {
case 4:
alert('๊ณ์ฐ์ด ๋ง์ต๋๋ค!');
break;
case 3: // (*) ๋ case๋ฌธ์ ๋ฌถ์
case 5:
alert('๊ณ์ฐ์ด ํ๋ฆฝ๋๋ค!');
alert("์ํ ์์
์ ๋ค์ ๋ค์ด๋ณด๋๊ฑธ ๊ถ์ ๋๋ฆฝ๋๋ค.");
break;
default:
alert('๊ณ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ด์ํ๋ค์.');
}
case 3
๊ณผ case 5
๋ ๋์ผํ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
switch/case
๋ฌธ์์ break
๋ฌธ์ด ์๋ ๊ฒฝ์ฐ์ ์กฐ๊ฑด์ ์๊ด์์ด ๋ค์ case
๋ฌธ์ด ์คํ๋๋ ๋ถ์์ฉ์ด ๋ฐ์ํฉ๋๋ค. ์ ์์์์ case 3
์ด ์ฐธ์ธ ๊ฒฝ์ฐ์ (*)
๋ก ํ์ํ ์ค ์๋์ ์ฝ๋๊ฐ ์คํ๋๋๋ฐ, ๊ทธ ์๋ ์ค์ case 5
๊ฐ ์๊ณ break
๋ฌธ๋ ์๊ธฐ ๋๋ฌธ์ 12๋ฒ์งธ ์ค์ break
๋ฌธ์ ๋ง๋ ๋๊น์ง ์ฝ๋๋ ๊ณ์ ์คํ๋ฉ๋๋ค.
switch๋ฌธ์ ์ผ์น ๋น๊ต๋ก ์กฐ๊ฑด์ ํ์ธํฉ๋๋ค. ๋น๊ตํ๋ ค๋ ๊ฐ๊ณผ case
๋ฌธ์ ๊ฐ์ ํ๊ณผ ๊ฐ์ด ๊ฐ์์ผ ํด๋น case
๋ฌธ์ด ์คํ๋ฉ๋๋ค.
์์๋ฅผ ํตํด switch๋ฌธ์์ ์๋ฃํ์ด ์ผ๋ง๋ ์ค์ํ์ง ์ดํด๋ณด๋๋ก ํฉ์๋ค.
let arg = prompt("๊ฐ์ ์
๋ ฅํด์ฃผ์ธ์.");
switch (arg) {
case '0':
case '1':
alert( '0์ด๋ 1์ ์
๋ ฅํ์
จ์ต๋๋ค.' );
break;
case '2':
alert( '2๋ฅผ ์
๋ ฅํ์
จ์ต๋๋ค.' );
break;
case 3:
alert( '์ด ์ฝ๋๋ ์ ๋ ์คํ๋์ง ์์ต๋๋ค!' );
break;
default:
alert( '์ ์ ์๋ ๊ฐ์ ์
๋ ฅํ์
จ์ต๋๋ค.' );
}
0
์ด๋1
์ ์ ๋ ฅํ ๊ฒฝ์ฐ์ ์ฒซ ๋ฒ์งธalert
๋ฌธ์ด ์คํ๋ฉ๋๋ค.2
๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ์ ๋ ๋ฒ์งธalert
๋ฌธ์ด ์คํ๋ฉ๋๋ค.3
์ ์ ๋ ฅํ์๋๋ผ๋ ์ธ ๋ฒ์งธalert
๋ฌธ์ ์คํ๋์ง ์์ต๋๋ค. ์์ ๋ฐฐ์ด ๋ฐ์ ๊ฐ์ดprompt
ํจ์๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅ ํ๋์ ๊ธฐ์ฌํ ๊ฐ์ ๋ฌธ์์ด๋ก ๋ณํํด ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์ซ์3
์ ์ ๋ ฅํ๋๋ผ๋prompt
ํจ์๋ ๋ฌธ์์ด'3'
์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ธ ๋ฒ์งธcase
๋ฌธ์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ๊ณผ ์ซ์ํ 3์ ๋น๊ตํ๋ฏ๋ก, ํ ์์ฒด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์case 3
์๋์ ์ฝ๋๋ ์ ๋ ์คํ๋์ง ์์ต๋๋ค. ๋์default
๋ฌธ์ด ์คํ๋ฉ๋๋ค.
์ถ์ฒ : Modern Javascript ํํ ๋ฆฌ์ผ
Last updated