ECMAScript switch 語(yǔ)句
switch 語(yǔ)句
switch 語(yǔ)句是 if 語(yǔ)句的兄弟語(yǔ)句。
開發(fā)者可以用 switch 語(yǔ)句為表達(dá)式提供一系列的情況(case)。
switch 語(yǔ)句的語(yǔ)法:
switch (expression)
case value: statement;
break;
case value: statement;
break;
case value: statement;
break;
case value: statement;
break;
...
case value: statement;
break;
default: statement;
每個(gè)情況(case)都是表示“如果 expression 等于 value,就執(zhí)行 statement”。
關(guān)鍵字 break 會(huì)使代碼跳出 switch 語(yǔ)句。如果沒有關(guān)鍵字 break,代碼執(zhí)行就會(huì)繼續(xù)進(jìn)入下一個(gè) case。
關(guān)鍵字 default 說(shuō)明了表達(dá)式的結(jié)果不等于任何一種情況時(shí)的操作(事實(shí)上,它相對(duì)于 else 從句)。
switch 語(yǔ)句主要是為避免讓開發(fā)者編寫下面的代碼:
if (i == 20)
alert("20");
else if (i == 30)
alert("30");
else if (i == 40)
alert("40");
else
alert("other");
等價(jià)的 switch 語(yǔ)句是這樣的:
switch (i) {
case 20: alert("20");
break;
case 30: alert("30");
break;
case 40: alert("40");
break;
default: alert("other");
}
ECMAScript 和 Java 中的 switch 語(yǔ)句
ECMAScript 和 Java 中的 switch 語(yǔ)句有兩點(diǎn)不同。在 ECMAScript 中,switch 語(yǔ)句可以用于字符串,而且能用不是常量的值說(shuō)明情況:
var BLUE = "blue", RED = "red", GREEN = "green";
switch (sColor) {
case BLUE: alert("Blue");
break;
case RED: alert("Red");
break;
case GREEN: alert("Green");
break;
default: alert("Other");
}
這里,switch 語(yǔ)句用于字符串 sColor,聲明 case 使用的是變量 BLUE、RED 和 GREEN,這在 ECMAScript 中是完全有效的。