ECMAScript switch 語句

switch 語句

switch 語句是 if 語句的兄弟語句。

開發者可以用 switch 語句為表達式提供一系列的情況(case)。

switch 語句的語法:

switch (expression)
  case value: statement;
    break;
  case value: statement;
    break;
  case value: statement;
    break;
  case value: statement;
    break;
...
  case value: statement;
    break;
  default: statement;

每個情況(case)都是表示“如果 expression 等于 value,就執行 statement”。

關鍵字 break 會使代碼跳出 switch 語句。如果沒有關鍵字 break,代碼執行就會繼續進入下一個 case。

關鍵字 default 說明了表達式的結果不等于任何一種情況時的操作(事實上,它相對于 else 從句)。

switch 語句主要是為避免讓開發者編寫下面的代碼:

if (i == 20)
  alert("20");
else if (i == 30)
  alert("30");
else if (i == 40)
  alert("40");
else
  alert("other");

等價的 switch 語句是這樣的:

switch (i) {
  case 20: alert("20");
    break;
  case 30: alert("30");
    break;
  case 40: alert("40");
    break;
  default: alert("other");
}

ECMAScript 和 Java 中的 switch 語句

ECMAScript 和 Java 中的 switch 語句有兩點不同。在 ECMAScript 中,switch 語句可以用于字符串,而且能用不是常量的值說明情況:

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 語句用于字符串 sColor,聲明 case 使用的是變量 BLUE、RED 和 GREEN,這在 ECMAScript 中是完全有效的。