# 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 中是完全有效的。