ë³µìì 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문ì íë° ë¬¶ì ì ììµëë¤.
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ë¬¸ì´ ì¤íë©ëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.