离线下载
PDF版 ePub版

极客学院团队出品 · 更新于 2018-07-22 01:00:48

Switch Case

你可以像前面章节那样用多个 if…else if 语句来执行多个代码块。然而,这不是最佳解决方案,尤其是当所有代码块的执行依赖于单个变量值时。

从 JavaScript 1.2 开始,你可以使用一个 switch 语句来处理上面提到的问题,而且这样做的效率远高于重复使用if…else if 语句。

语法

switch语句的基本语法是给定一个判断表达式以及若干不同语句,根据表达式的值来执行这些语句。编译器检查每个case是否与表达式的值相匹配。如果没有与值相匹配的,则执行缺省条件。

    switch (expression)
    {
      case condition 1: statement(s)
    break;
      case condition 2: statement(s)
    break;
       ...
      case condition n: statement(s)
    break;
      default: statement(s)
    }  

break语句用于在特殊case的最后终止程序。如果省略掉break,编译器将继续执行下面每个case里的语句。

我们将在循环控制那一章节里继续讨论break语句。

例子

下面这个例子演示了一个基本的while循环:

    <script type="text/javascript">
    <!--
    var grade='A';
    document.write("Entering switch block<br />");
    switch (grade)
    {
      case 'A': document.write("Good job<br />");
    break;
      case 'B': document.write("Pretty good<br />");
    break;
      case 'C': document.write("Passed<br />");
    break;
      case 'D': document.write("Not so good<br />");
    break;
      case 'F': document.write("Failed<br />");
    break;
      default:  document.write("Unknown grade<br />")
    }
    document.write("Exiting switch block");
    //-->
    </script>

程序运行结果如下:

    Entering switch block
    Good job
    Exiting switch block

例子

看一下如果没用break语句的情况:

    <script type="text/javascript">
    <!--
    var grade='A';
    document.write("Entering switch block<br />");
    switch (grade)
    {
      case 'A': document.write("Good job<br />");
      case 'B': document.write("Pretty good<br />");
      case 'C': document.write("Passed<br />");
      case 'D': document.write("Not so good<br />");
      case 'F': document.write("Failed<br />");
      default:  document.write("Unknown grade<br />")
    }
    document.write("Exiting switch block");
    //-->
    </script>

程序运行结果如下:

    Entering switch block
    Good job
    Pretty good
    Passed
    Not so good
    Failed
    Unknown grade
    Exiting switch block
上一篇: If...Else 下一篇: While 循环