![20395626ef4ad8f24f203d75bd2ace91.png](https://i-blog.csdnimg.cn/blog_migrate/ec829fc5d6a627833d3d7b797c13e8d3.jpeg)
好好学习,天天向上
switch 语句
- 开关语句允许一个程序求一个表达式的值,并且尝试去匹配表达式的值到一个 case 标签,如果匹配成功,这个程序执行相关的语句
语法:
switch (表达式) {
case 值1:
结构体1;
break;
case 值2:
结构体2;
break;
…
default:
结构体n;
break;
}
结构解析:
- switch:关键字表示开始进入一个开关语句
- 表达式:会求出一个具体的值,将这个值去与 {} 内部的 case 后面的值进行对比、匹配,如果值相等表示匹配成功。匹配相等时,方式是进行全等于匹配,不止值要相等,数据类型也要相等
- case:示例的意思,作为关键字后面必须跟一个空格,书写匹配的值
- case 后面的结构体:每个 case 匹配成功之后要执行的语句
- break:用于打断结构体,直接跳出程序,模拟跳楼现象
- default:相当于 if 语句中的 else,否则的情况,如果前面的 case 都不匹配,执行 default 后面的语句
示例1:
<script>
var xingZuo = prompt("请输入你的星座", "天蝎座");
// 进行匹配
switch (xingZuo){
case "天蝎座":
alert("运势nice");
break;
case "巨蝎座":
alert("运势nice2");
break;
case "处女座":
alert("运势nice3");
break;
case "天秤座":
alert("运势nice4");
break;
default:
alert("还么有收录");
break;
}
</script>
示例图:
![c4b7bdd109cd7493b761b34daaf5b4be.gif](https://i-blog.csdnimg.cn/blog_migrate/196b71678c760358056caa51755198c2.gif)
示例2:
<script>
var month = parseInt(prompt("请输入需要查询的月份", "1"));
switch (month){
// case 1 || 3 || 5 || 7: 这是错误的,它会先算出数据
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
alert("这个月有31天");
break;
case 2:
alert("这个月有28/29天");
break;
default:
alert("这个月有30天");
break;
}
</script>
示例图:
![e142e6defc460e92a3c538abf1e2afbe.gif](https://i-blog.csdnimg.cn/blog_migrate/c6183fca8677a62751be81ba0711b34e.gif)
运行机制:
- switch 语句首先会将小括号内的表达式计算出一个结果,用结果去匹配结构体内部的 case;
- 从上往下进行匹配,如果匹配成功,会立即执行这个 case 后面的语句,直到遇到一个 break 跳出整个 switch 语句;
- 如果前面的 case 没有匹配成功,会跳过 case 之间的语句,去匹配下一个 case,直到匹配成功,如果都不成功就执行 default 后面的语句
注意事项
- default 可以不写,相当于 if 语句没有 else
- break 关键字:根据结构需要有时必须在每个 case 后面都要写,为了模拟跳楼现象,如果不写 break,对应的 case 后面的语句执行之后,不会跳出结构体,会继续想下执行其他 case 的后面的语句,直到遇到一个 break
- 可以利用 break 不写的情况制作一些特殊的案例
条件分支语句总结
- 总结:实际工作中使用三种语句的情景
- if 语句:最常用的语句,所有的判断情况都能够书写
- 三元表达式:多用于给变量赋值根据条件二选一的情况
- switch 语句:多用于给一个表达式去匹配多种固定值可能性的情况