switch 语句

一个小时学会JavaScript
2023-06-04 19:13 · 阅读时长4分钟
小课

switch 语句和 if 语句一样,可以根据条件来决定是否执行代码块,它相比 if 语句,在多分支的情况下可读性更好,也就是更容易理解代码。比如说下面这个示例,我们想要根据评分来打印不同的评语。

1let rating = 5
2if (rating == 1) {
3    console.log("bad")
4} else if (rating == 2) {
5    console.log("poor")
6} else if (rating == 3) {
7    console.log("fair")
8} else if (rating == 4) {
9    console.log("good")
10} else if (rating == 5) {
11    console.log("excellent")
12}

这是使用 if 语句实现的代码,下面我们使用 switch 语句来实现同样的功能,对比是否更加直观。

1let rating = 5
2switch (rating) {
3    case 1:
4        console.log("bad")
5        break
6    case 2:
7        console.log("poor")
8        break
9    case 3:
10        console.log("fair")
11        break
12    case 4:
13        console.log("good")
14        break
15    case 5:
16        console.log("excellent")
17        break
18}

通过以上示例,我们可以看出 switch 语句的基本结构如下

1switch (判断表达式) {
2    case 值1:
3        代码1
4        break
5    case 值2:
6        代码2
7        break
8    case 值3:
9        代码3
10        break
11    default: 
12        默认代码
13}

当 switch 中的判断表达式等于某个 case 中的值时,将会执行 case 中的代码,break 是用于执行完后跳出当前 switch 语句,当判断表达式不等于任意一个 case 中的值时,如果有 default 则执行 default 中的代码,否则跳过 switch 语句,直接执行后面的代码。

当 case 中没有 break 时,将不会跳出 switch 语句,而是继续执行后续的 case 代码,直到遇到 break 或者执行完毕。

1let rating = 1
2switch (rating) {
3    case 1:
4        console.log("bad")
5    case 2:
6        console.log("poor")
7    case 3:
8        console.log("fair")
9    case 4:
10        console.log("good")
11        break
12    case 5:
13        console.log("excellent")
14        break
15}

当判断表达式不等于任意一个 case 中的值时,则执行 default 中的代码。

1let rating = -1
2switch (rating) {
3    case 1:
4        console.log("bad")
5        break
6    case 2:
7        console.log("poor")
8        break
9    case 3:
10        console.log("fair")
11        break
12    case 4:
13        console.log("good")
14        break
15    case 5:
16        console.log("excellent")
17        break
18    default: 
19        console.log("invalid")
20}
JavaScriptswitch语句