首页 > 编程笔记 > JavaScript笔记
JS switch case语句
当判断语句存在 3 条或 3 条以上的分支语句时,也经常使用 switch 语句。if…else if…else 语句很多时候都可以使用 switch 语句代替,而且当所有判断都针对一个表达式进行时,使用 switch…case 语句比 if…else if…else 语句更合适,因为此时只需要计算一次条件表达式的值。
switch 语句的基本语法如下:
switch 语句的执行流程是这样的:首先计算 switch 关键字后面的表达式,然后按照从上到下的顺序计算每个 case 后的表达式并和 switch 表达式的值进行比较。
当 switch 表达式的值与某个 case 表达式的值相等时,就执行此 case 后的语句块;如果 switch 表达式的值与所有 case 表达式的值都不相等,则执行语句中的“default:”的语句块;如果没有“default:”标签,则跳过整个 switch 语句。
另外,break 语句用于结束 switch 语句,从而使 JavaScript 只执行匹配的分支。如果没有 break 语句,则该 switch 语句的所有分支都将被执行,switch 语句也就失去了使用的意义。
【例 1】switch 语句的使用。
上述代码首先计算 switch 中的表达式 Math.floor(score/10),然后将该值按从上到下的顺序依次跟 case 后面的值比较,如果相等,则执行该 case 后面的代码并退出 switch 语句;如果跟所有的 case 后面的值比较都不相等,则执行“default:”后面的语句块。需要注意的是,case9 后面没有 break 语句,这样当 switch 表达式的值是 9 时,程序会执行完 case9 后继续执行 case10,然后跳出。
需要注意的是:例 1 只针对输入的值在 0~100 之间有效,如果超出 100,则判断结果出错。对 0~100 之间的输入值,运行结果如下图所示。
图 1:成绩输出结果
switch 语句的基本语法如下:
switch (表达式){
case 表达式1:
语句块1;
break;
case表达式2:
语句块2;
break;
case表达式n:
语句块n;
break;
default:
语句块n+1;
}
switch 语句的执行流程是这样的:首先计算 switch 关键字后面的表达式,然后按照从上到下的顺序计算每个 case 后的表达式并和 switch 表达式的值进行比较。
当 switch 表达式的值与某个 case 表达式的值相等时,就执行此 case 后的语句块;如果 switch 表达式的值与所有 case 表达式的值都不相等,则执行语句中的“default:”的语句块;如果没有“default:”标签,则跳过整个 switch 语句。
另外,break 语句用于结束 switch 语句,从而使 JavaScript 只执行匹配的分支。如果没有 break 语句,则该 switch 语句的所有分支都将被执行,switch 语句也就失去了使用的意义。
下面使用 switch 语句修改“JS if else语句”一节中的例 5,代码如下所示。需要注意的是:对每个 case 的匹配操作是 “===”严格相等运算符比较操作,即两个表达式的值必须同时满足值和类型都相等才算相等。
【例 1】switch 语句的使用。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>switch语句的使用</title> <script> window.onload = function (){ var oText = document.getElementById('text1'); var oBtn = document.getElementById('btn1'); oBtn.onclick = function (){ var score = oText.value; //获取文本框中输入的成绩 switch(Math.floor(score/10)){ //除法操作使score字符串隐式转换为数字 case 6: alert("成绩及格!"); break; case 7: alert("成绩中等!"); break; case 8: alert("成绩良好!"); break; case 9: case 10: alert("成绩优秀!"); break; default: alert("成绩不理想!"); } }; }; </script> </head> <body> <body> 请输入成绩:<input type="text" id="text1"/> <input type="button" id="btn1" value="提交"/> </body> </html>上述代码中的 floor(value) 方法是 Math 内置对象的一个方法,功能是返回一个小于等于参数 value 的最小整数,例如 Math.floor(89/10)=Math.floor(8.9)=8。可见如果成绩是分布在 1~100,则使用 floor(score/10) 方法可以得到每一段成绩对应的数字分别为 1~10,再通过判断 floor(score/10) 值为哪个数字就可以知道成绩的等级了。
上述代码首先计算 switch 中的表达式 Math.floor(score/10),然后将该值按从上到下的顺序依次跟 case 后面的值比较,如果相等,则执行该 case 后面的代码并退出 switch 语句;如果跟所有的 case 后面的值比较都不相等,则执行“default:”后面的语句块。需要注意的是,case9 后面没有 break 语句,这样当 switch 表达式的值是 9 时,程序会执行完 case9 后继续执行 case10,然后跳出。
需要注意的是:例 1 只针对输入的值在 0~100 之间有效,如果超出 100,则判断结果出错。对 0~100 之间的输入值,运行结果如下图所示。
图 1:成绩输出结果
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算