switch æã¯è¤æ°ã® if ãã§ãã¯ã«ç½®æã§ãã¾ãã
ããã¯å¤ãè¤æ°ã®ãã¿ã¼ã³ã¨æ¯è¼ããããã®ãããããããããæ¹æ³ãæä¾ãã¾ãã
æ§æ
switch ã¯1ã¤ä»¥ä¸ã® case ãããã¯ãæã¡ã ãªãã·ã§ã³ã§ default ãæã¡ã¾ãã
ãã®ããã«ãªãã¾ã:
switch(x) {
case 'value1': // if (x === 'value1')
...
[break]
case 'value2': // if (x === 'value2')
...
[break]
default:
...
[break]
}
xã®å¤ã¯ãæåã®case(ããã¯value1)ã®å¤ã¨å³å¯ãªç価ã®ãã§ãã¯ãããã¾ããããã¦2ã¤ç®(value2)ã¨ç¶ãã¾ãã- ç価ãªãã®ãè¦ã¤ãã£ãå ´åã
switchã¯è©²å½ããcaseããå§ã¾ãã³ã¼ããå®è¡ãå§ãã¾ããæãè¿ãbreakã¾ã§(ãããã¯switchã®çµããã¾ã§)ã - ãããããã±ã¼ã¹ãç¡ãå ´åã¯ã
defaultã³ã¼ããå®è¡ããã¾ã(åå¨ããå ´å)
ä¾
switch ã®ä¾ã§ã(å®è¡ãããã³ã¼ãã¯ãã¤ã©ã¤ãããã¦ãã¾ã)
let a = 2 + 2;
switch (a) {
case 3:
alert( 'Too small' );
break;
case 4:
alert( 'Exactly!' );
break;
case 5:
alert( 'Too large' );
break;
default:
alert( "I don't know such values" );
}
ããã§ã switch ã¯ãæåã® case ã§ãã 3 ãã a ã¨ã®æ¯è¼ãå§ãã¾ãããããã¯ãã¾ããã
ãã㦠4 ã§ãããããããã®ã§ãcase 4 ããæãè¿ã break ã¾ã§ã®å®è¡ãéå§ãã¾ãã
break ããªãå ´åããã§ãã¯ãªãã§æ¬¡ã® case ã®å®è¡ãç¶ç¶ãã¾ãã
break ãªãã®ä¾ã§ã:
let a = 2 + 2;
switch (a) {
case 3:
alert( 'Too small' );
case 4:
alert( 'Exactly!' );
case 5:
alert( 'Too big' );
default:
alert( "I don't know such values" );
}
ä¸ã®ä¾ã§ã¯ã3ã¤ã® alert ãé ã«å®è¡ãããã§ãããã
alert( 'Exactly!' );
alert( 'Too big' );
alert( "I don't know such values" );
switch / case ã®å¼æ°ã«ãªãã¾ãswitch 㨠case ã®ä¸¡æ¹ã¯ä»»æã®è¡¨ç¾ãå¯è½ã§ãã
ä¾:
let a = "1";
let b = 0;
switch (+a) {
case b + 1:
alert("this runs, because +a is 1, exactly equals b+1");
break;
default:
alert("this doesn't run");
}
ããã§ +a 㯠1 ãä¸ãããã case ã§ b + 1 ã¨æ¯è¼ããã¾ããããã¦ã対å¿ããã³ã¼ããå®è¡ããã¾ãã
"case"ã®ã°ã«ã¼ãã³ã°
åãã³ã¼ããå
±æããè¤æ°ã® case ã®ãã¿ã¼ã³ã¯ã°ã«ã¼ãåã§ãã¾ãã
ãã¨ãã°ãcase 3 㨠case 5 ã§åãã³ã¼ããå®è¡ãããå ´å:
let a = 2 + 2;
switch (a) {
case 4:
alert('Right!');
break;
case 3: // (*) 2ã¤ã®ã±ã¼ã¹ãã°ã«ã¼ãå
case 5:
alert('Wrong!');
alert("Why don't you take a math class?");
break;
default:
alert('The result is strange. Really.');
}
ä»ã3 㨠5 ã¯åãã¡ãã»ã¼ã¸ã表示ãã¾ãã
ã±ã¼ã¹ã âã°ã«ã¼ãåâ ããæ©è½ã¯ãbreak ããªãå ´åã® switch/case ã®åä½ã®å¯ä½ç¨ã§ããããã§ case 3 ã®å®è¡ã¯ãbreak ããªãã®ã§ (*) ã®è¡ããå§ã¾ããcase 5 ãéãæãã¾ãã
åã®åé¡
ç価ãã§ãã¯ã¯å¸¸ã«å³å¯ã§ãããã¨ã«æ³¨ç®ãã¾ãããããããããããã«å¤ã¯åãåã§ããå¿ è¦ãããã¾ãã
ãã¨ãã°ããã®ã³ã¼ããèãã¦ã¿ã¾ããã:
let arg = prompt("Enter a value?")
switch (arg) {
case '0':
case '1':
alert( 'One or zero' );
break;
case '2':
alert( 'Two' );
break;
case 3:
alert( 'Never executes!' );
break;
default:
alert( 'An unknown value' )
}
0,1ã®å ´åãæåã®alertãå®è¡ããã¾ãã2ã®å ´åã¯2ã¤ç®ã®alertãå®è¡ããã¾ãã- ããã
3ã®å ´åãpromptã®çµæã¯æååã®"3"ãªã®ã§ãæ°åã®3ã¨ã®å³å¯ãªç価===ã§ã¯ããã¾ããããã®ãããcase 3ã¯ãããã³ã¼ãã§ã!defaultã±ã¼ã¹ãå®è¡ãããã§ãããã
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã