Switch Case

优质
小牛编辑
146浏览
2023-12-01

您可以使用多个if...else…if语句(如上一章所述)来执行多路分支。 但是,这并不总是最佳解决方案,尤其是当所有分支都依赖于单个变量的值时。

从JavaScript 1.2开始,您可以使用switch语句来处理这种情况,并且它比重复if...else if语句更有效。

流程图 (Flow Chart)

以下流程图说明了switch-case语句的工作原理。

JavaScript的javascript_switch_case

语法 (Syntax)

switch语句的目标是给出一个表达式来评估,并根据表达式的值执行几个不同的语句。 解释器根据表达式的值检查每个case ,直到找到匹配项。 如果没有匹配,将使用default条件。

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

break语句表示特定案例的结束。 如果省略它们,则解释器将在以下每种情况下继续执行每个语句。

我们将在Loop Control章节中解释break语句。

例子 (Example)

请尝试以下示例来实现switch-case语句。

<html>
   <body>
      <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>
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

输出 (Output)

Entering switch block
Good job
Exiting switch block
Set the variable to different value and then try...

Break语句在switch-case语句中起主要作用。 尝试使用switch-case语句的以下代码,不带任何break语句。

<html>
   <body>
      <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>
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

输出 (Output)

Entering switch block
Good job
Pretty good
Passed
Not so good
Failed
Unknown grade
Exiting switch block
Set the variable to different value and then try...