Go 语言 switch 语句(分支判断)
一则或许对你有用的小广告
最近,小哈正在带小伙伴们做前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.2 + Vite 4
,手把手,前端 + 后端,全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已进入第七章 《文章分类模块开发》中,截止到目前,已更新 105150 字,69 篇内容,讲解图:521 张,还在持续爆肝中,后续还会上新更多项目,已有 200+ 小伙伴加入,欢迎点击围观。
分支判断可以理解成批量的 if 语句,使用 switch 语句可以非常方便地对大量值进行条件判断。
一、基本写法
Go 语言 改进了其他语言中 switch
语句的设计弊端。Go 语言中 switch
中的每一个 case
都是独立代码块,无需通过 break
语句跳出代码块,以避免执行到下一个 case
代码块。
PS: 如果你有其他语言的编程经验 (如 Java), 一定会对
case
代码块中的break
语句印象深刻。
swtich
语句的基本格式如下:
num := 1
switch num {
case 1:
fmt.Println("1 -> 犬小哈教程 quanxiaoha.com")
case 2:
fmt.Println("2 -> 犬小哈教程 quanxiaoha.com")
default:
fmt.Println("error")
}
代码输出如下:
1 -> 犬小哈教程 quanxiaoha.com
图示:
go语言switch语句代码示例
上面代码中,case
对整型 num
进行判断,若条件符合,则打印相应的字符串 。另外,还使用了 default
分支,default
分支表示若条件均不符合,则执行改代码块。
注意:每一个
swtich
语句中只能有一个default
分支。
二、一分支多值
当需要多个 case 放在一起的时候,代码格式如下:
package main
import "fmt"
func main() {
num := 1
switch num {
case 1, 2:
fmt.Println("犬小哈教程 quanxiaoha.com")
}
}
表达式直接用逗号 , 隔开即可。
三、分支表达式
case 后面除了定义常量以外,还可以像 if 语句一样添加表达式,代码如下:
package main
import "fmt"
func main() {
num := 1
switch {
case num > 0 && num < 2:
fmt.Println("犬小哈教程 quanxiaoha.com")
}
}
注意: 这个时候,switch 后面不再跟判断变量,直接不写即可。
四、fallthrough 关键字 —— 兼容 C 语言的 case 设计
前面说到了 Go 语言中 swtich
语句中的 case
均为独立代码块,执行完成后,不会像 C 语言那种继续执行下一个 case
。
但是为了兼容一些移植代码,Go 语言加入了 fallthrough
关键字来实现这一功能。
实例代码如下:
package main
import "fmt"
func main() {
num := 1
switch {
case num > 0:
fmt.Println("犬小哈教程 quanxiaoha.com")
fallthrough
case num < 2:
fmt.Println("犬小哈教程 quanxiaoha.com")
}
}
代码输出如下:
犬小哈教程 quanxiaoha.com
犬小哈教程 quanxiaoha.com
五、结语
本小节中,我们学习了 Go 语言的 swtich
语句(分支选择),希望大家看完后有所收获。