十五、switch( ){ }

十五、switch( ){ }

15.1 switch语法结构

switch语句,也叫开关语句,计算机会自行计算表达式的值,然后会进行匹配。当表达式的值和case的值能够匹配时,执行该case后面的执行体

语法结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch(表达式){
case1
执行体;
break
case2
执行体;
break
case3
执行体;
break
……
default
执行体;
break; // 此处的break可写可不写
}

去匹配case中的值,能够匹配上执行该case后面的执行体。case语句后面必须书写break,当switch语句遇见break时,会结束整个switch语句。

例:输入星座,弹出今天的星座运势

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<script>
var xingzuo = prompt("请输入你的星座:")
switch(xingzuo){
case "白羊座":
alert("压力很大。");
break;
case "金牛座":
alert("内心十分感动。");
break;
case "双子座":
alert("太过小气。");
break;
case "巨蟹座":
alert("事情进展不顺利。");
break;
case "狮子座":
alert("事情未能如愿进行。");
break;
case "处女座":
alert("勇往直前。");
break;
case "天秤座":
alert("享受快乐时光。");
break;
case "天蝎座":
alert("家人关系出现问题。");
break;
case "射手座":
alert("人际关系良好。");
break;
case "摩羯座":
alert("缺乏把想法付诸实践的行动力。");
break;
case "水瓶座":
alert("很有成就感。");
break;
case "双鱼座":
alert("朝着目标前进。");
break;
default:
alert("没有你输入的星座"); // 上面内容都不匹配时,出现default里的内容
break; // break在这里写不写default都要结束
}
</script>

U9ZnRP.png

改写为if语句:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
var xingzuo = prompt("请输入你的星座:")
if(xingzuo == "白羊座"){
alert("白羊1234");
}else if(xingzuo == "双子座"){
alert("双子1234");
}else if(xingzuo == "双鱼座"){
alert("双鱼1234");
}else if(xingzuo == "狮子座"){
alert("狮子1234");
}else if(xingzuo == "水瓶座"){
alert("水瓶1234");
}else if(xingzuo == "天蝎座"){
alert("天蝎1234");
}else{
alert("没有你输入的星座")
}
</script>

## 15.2 default语句

default:表示以上case都没有匹配,执行的语句。default后面的break可写可不写。不书写break,当语句执行完default语句,也会结束switch语句。

15.3 break语句

breakbreak语句在switch语句中表示,当匹配到case时,执行case后的语句完成后,遇见break,会结束整个switch语句。

如果没有break语句,及时后面的case不匹配,也会执行该case语句。

有时我们可以根据需要,利用break的作用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script>
var a = prompt("请输入月份:")
switch(a){
case 2:
console.log("2月有28天");
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log(a + "月有31天");
break;
default:
console.log(a + "月有30天");
break; // 可写可不写
}
</script>

U9ZHJI.png

注意:

1
2
3
case 1 || 3 || 5 || 7 || 8 || 10 || 12: 

不可以这样写,计算机是先计算再赋值,1 || 3 || 5 || 7 || 8 || 10 || 12的结果是11是真,后面的就短路了),然后才case匹配。

15.4 switch语法的另类写法

另类写法:

switch中书写true,将表达式写在case后面,当case表达式为true时,匹配switch中的true,执行后面的执行语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
var a = prompt("请输入成绩:")
switch(true){
case a < 60:
alert("不及格");
break;
case a < 75:
alert("及格");
break;
case a < 90:
alert("良好");
break;
default:
alert("优秀")
break; // 可写可不写
}
</script>

U9elSx.png

总结:

1
2
3
if语句,应用最广泛、最灵活
三元表达式,二选一的情况使用
switch语句,有多种可能值时使用
点击查看

本文标题:十五、switch( ){ }

文章作者:Mango

发布时间:2020年07月08日 - 21:47:31

最后更新:2020年07月08日 - 22:35:39

原始链接:https://mango185.github.io/post/85c95644.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------