• Golang入门笔记(5)—— 流程控制之switch分支


            switch 有切换,开关的意思,我想这也许就是代码上的意义,通过表达式计算出一个值,然后进行状态的匹配和然后进行流程上的切换。

    基本语法:

    1. switch 表达式 {
    2. case 值a1,值a2, ...
    3. 语句块
    4. case 值b1,值b2, ...
    5. 语句块
    6. ...
    7. default :
    8. 语句块
    9. }

            简单记忆: switch 就是像是一个册封了的权力的头衔,表达式就像是一个将军。 当表达式给与了将军的头衔之后,他便开始开疆辟土 { } ,来了一个块作用域 ; 这里面有很多 表达式 计算出的值,就指向了 ,这个将军即将要去的地方,有茶馆,有电影院,有寺庙,有酒店,有图书管,有健身管, 语句块里面就像是将军在此场景下要做的事。default : 是默认,就是都没地方可去的时候,将军默认要做的事情,比如:睡觉休息。

    1. package main
    2. import "fmt"
    3. func main() {
    4. switch placeNo := 4; placeNo % 10 {
    5. case 1, 2, 3:
    6. fmt.Println("1喝茶")
    7. fmt.Println("2喝茶")
    8. fmt.Println("3喝茶")
    9. case 4, 5:
    10. fmt.Println("4看书")
    11. fmt.Println("5看书")
    12. fallthrough
    13. case 6:
    14. fmt.Println("6看书")
    15. case 7, 8, 9:
    16. fmt.Println("7健身")
    17. fmt.Println("8健身")
    18. fmt.Println("9健身")
    19. default:
    20. fmt.Println("啥也不干,在家休息")
    21. }
    22. }

    注意事项:

            1 . case 的值,不能重复 ,否则 build编译的时候 ,会 dupicate case。

            2 . switch 后面的表达式,可以是一个常量值,变量,或可以取到值得函数 都可以。

            3 . case 后的值的数据类型,必须和表达式的数据类型一致。

            4 . case后面可以跟多种情况值, 如 本例。

            5 . default 语句非必须,位置可以随意。一般放在最后。

            6 . switch 可以不带表达式,只用case,当if 分支来使用。

            7 . 和if一样支持在switch 后面定义变量,用分号分隔。但并不推荐。

            8 . switch 穿透:利用fallthrough 关键字,如果在case 语句块后,增加 fallthrough ,会继续执行下一个case。如上的代码输出:4看书 5看书,就是因为 fallthrough 向下击穿了一个case,一个fallthrough,击穿的case, 有且仅有1一个。

  • 相关阅读:
    汪子熙趣味成语接龙的游戏软件使用文档说明
    (附源码)ssm失物招领系统 毕业设计 182317
    python实现excel的数据提取
    银行营销策略数据分析 - 智能定位
    13Spring Boot整合第三方Druid数据源(自定义整合Druid)
    单元测试与集成测试:软件质量的双重保障
    GMT 格式 转 标准日期格式
    [源码解析] TensorFlow 分布式之 MirroredStrategy 分发计算
    MT3036 第一节离数课后
    npm ERR! While resolving: ruoyi@3.8.5npm ERR! Found: webpack@5.89.0
  • 原文地址:https://blog.csdn.net/wdw18668109050/article/details/127896709