JavaScript switch case
你可以使用多个if...else...if语句,就像前一章那样,来执行一个多路分支。然而,这并不总是最好的解决方案,特别是当所有的分支都依赖于一个变量的值时。
从JavaScript 1.2开始,你可以使用switch语句来处理这种情况,而且它比重复的if...else if语句更有效。
语法
switch语句的目的是给出一个要评估的表达式,并根据表达式的值执行几个不同的语句。解释器根据表达式的值检查每个案例,直到找到一个匹配的案例。如果没有匹配的,将使用一个默认的条件。
switch (expression) { case condition 1: statement(s) break; case condition 2: statement(s) break; ... case condition n: statement(s) break; default: statement(s) }
Break语句表示某一特定情况的结束。如果省略了这些语句,解释器将继续执行下面每个案例中的每个语句。
我们将在循环控制一章中解释break语句。
例子
请尝试以下示例来实现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>
Entering switch block Good job Exiting switch block Set the variable to different value and then try...
Break语句在switch-case语句中起主要作用。请尝试使用不带任何break语句的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 />"); 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>
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...