【golang学习之旅】Go的 switch 分支语句

系列文章

【golang学习之旅】报错:a declared but not used
【golang学习之旅】Go 的基本数据类型
【golang学习之旅】Go 的循环结构
【golang学习之旅】Go里面 if 条件判断语句



switch 分支

有些时候需要写很多的if-else来实现一些逻辑处理,这个时候代码看上去就很丑很冗长,而且也不易于以后的维护,这个时候switch就能很好的解决这个问题。

Go 的 switch 语句类似于 C、C++、Java、JavaScript 和 PHP 中的,不过 Go 只会运行选定的 case,而非之后所有的 case。 在效果上,Go 的做法相当于这些语言中为每个 case 后面自动添加了所需的 break 语句。在 Go 中,除非以 fallthrough 语句结束,否则分支会自动终止。 Go 的另一点重要的不同在于 switch 的 case 无需为常量,且取值不限于整数

在这里插入图片描述


fallthrough 关键字

switch-case 有个特殊的 fallthrough 用法,它会无条件的执行匹配到的下一个case。

Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。

integer := 6
switch integer {
case 4:
    fmt.Println("The integer was <= 4")
    fallthrough
case 5:
    fmt.Println("The integer was <= 5")
    fallthrough
case 6:
    fmt.Println("The integer was <= 6")
    fallthrough
case 7:
    fmt.Println("The integer was <= 7")
    fallthrough
case 8:
    fmt.Println("The integer was <= 8")
    fallthrough
default:
    fmt.Println("default case")
}

上面的程序将输出

The integer was <= 6
The integer was <= 7
The integer was <= 8
default case

无条件 switch

无条件的 switch 同 switch true 一样。

在这里插入图片描述

相关推荐

  1. Golang switch 语句

    2024-05-01 01:10:01       62 阅读
  2. 2-1.分支结构switch语句

    2024-05-01 01:10:01       52 阅读
  3. Golang语言switch case

    2024-05-01 01:10:01       65 阅读
  4. Go语言自给自足:编译自身神奇

    2024-05-01 01:10:01       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-01 01:10:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-01 01:10:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-01 01:10:01       82 阅读
  4. Python语言-面向对象

    2024-05-01 01:10:01       91 阅读

热门阅读

  1. python使用meshio加vtk读取数据并渲染

    2024-05-01 01:10:01       32 阅读
  2. php 使用链接接收两个参数

    2024-05-01 01:10:01       24 阅读
  3. Zephyr PM电源管理系统学习笔记

    2024-05-01 01:10:01       34 阅读
  4. GpuMall的GPU算力资源池化技术有何优势?

    2024-05-01 01:10:01       33 阅读
  5. 2012NOIP普及组真题 2. 寻宝

    2024-05-01 01:10:01       36 阅读
  6. 安卓平台的在线视频下载神器—Seal

    2024-05-01 01:10:01       119 阅读
  7. 处理推送被拒绝的问题

    2024-05-01 01:10:01       24 阅读
  8. Vue中使用watch监听Vuex中的数据变化

    2024-05-01 01:10:01       35 阅读
  9. 等保测评-锐捷设备核查命令

    2024-05-01 01:10:01       133 阅读
  10. Tomcat基本使用与控制台乱码解决方式

    2024-05-01 01:10:01       33 阅读