switch分支
本文最后更新于202 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

switch分支

基本语法:

switch 表达式{
case 值1:
语句块1
case 值2:
语句块2
.....
default:
语句块
}

  • switch后面是一个表达式,这个表达式的结果依次跟case进行比较,满足结果的话就执行冒号后面的代码。

  • default是用来“兜底”的一个分文,其它case分文都不走的情况下就会走default分支

package main

import (
    "fmt"
)

func main()  {
    var i int = 66
    switch i/10 {
    case 10 :
        fmt.Println("等级A")
    case 9 :
        fmt.Println("等级B")
    case 8 :
        fmt.Println("等级C")
    case 7 :
        fmt.Println("等级D")
    case 6 :
        fmt.Println("等级E")
    case 5 :
        fmt.Println("等级F")
    case 4 :
        fmt.Println("等级G")
    case 3 :
        fmt.Println("等级H")
    case 2 :
        fmt.Println("等级I")
    case 1 :
        fmt.Println("等级J")
    }

}

注意事项:

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穿透。fallthrough只穿透一层。

package main

import (
    "fmt"
)

func main()  {
    var i int = 66
    switch i/10 {
    case 10 :
        fmt.Println("等级A")
    case 9 :
        fmt.Println("等级B")
    case 8 :
        fmt.Println("等级C")
    case 7 :
        fmt.Println("等级D")
    case 6 :
        fmt.Println("等级E")
        fallthrough 
    case 5 :
        fmt.Println("等级F")
    case 4 :
        fmt.Println("等级G")
    case 3 :
        fmt.Println("等级H")
    case 2 :
        fmt.Println("等级I")
    case 1 :
        fmt.Println("等级J")
    }

}

文末附加内容
上一篇
下一篇