Skip to content

【1】基本语法:

switch 表达式 { case 值1,值2,.….: 语句块1 case 值3,值4,...: 语句块2

....

default: 语句块 }

【2】代码练习:

go
package main
import "fmt"
func main(){
        //实现功能:根据给出的学生分数,判断学生的等级:
        // >=90  -----A
        // >=80  -----B
        // >=70  -----C
        // >=60  -----D
        // <60   -----E

        //给出一个学生分数:
        var score int = 187
        //根据分数判断等级:
        //switch后面是一个表达式,这个表达式的结果依次跟case进行比较,满足结果的话就执行冒号后面的代码。
        //default是用来“兜底”的一个分支,其它case分支都不走的情况下就会走default分支
        //default分支可以放在任意位置上,不一定非要放在最后。
        switch score/10 {
                case 10 :
                        fmt.Println("您的等级为A级")
                case 9 :
                        fmt.Println("您的等级为A级")
                case 8 :
                        fmt.Println("您的等级为B级")
                case 7 :
                        fmt.Println("您的等级为C级")
                case 6 :
                        fmt.Println("您的等级为D级")
                case 5 :
                        fmt.Println("您的等级为E级")
                case 4 :
                        fmt.Println("您的等级为E级")
                case 3 :
                        fmt.Println("您的等级为E级")
                case 2 :
                        fmt.Println("您的等级为E级")
                case 1 :
                        fmt.Println("您的等级为E级")
                case 0 :
                        fmt.Println("您的等级为E级")
                default:
                        fmt.Println("您的成绩有误")
        }

}

【3】注意事项:

(1)switch后是一个表达式(即:常量值、变量、一个有返回值的函数等都可以)

(2)case后面的值如果是常量值(字面量),则要求不能重复

(3)case后的各个值的数据类型,必须和 switch 的表达式数据类型一致

(4)case后面可以带多个值,使用逗号间隔。比如 case 值1,值2...

(5)case后面不需要带break (6)default语句不是必须的,位置也是随意的。

(7)switch后也可以不带表达式,当做if分支来使用

(8)switch后也可以直接声明/定义一个变量,分号结束,不推荐

(9)switch穿透,利用fallthrough关键字,如果在case语句块后增加fallthrough ,则会继续执行下一个case,也叫switch穿透。

Java · Golang · Rust