Go 语言 switch 语句(分支判断)

分支判断可以理解成批量的 if 语句,使用 switch 语句可以非常方便地对大量值进行条件判断。
一、基本写法
Go 语言 改进了其他语言中 switch 语句的设计弊端。Go 语言中 switch 中的每一个 case 都是独立代码块,无需通过 break 语句跳出代码块,以避免执行到下一个 case 代码块。
PS: 如果你有其他语言的编程经验 (如 Java), 一定会对
case代码块中的break语句印象深刻。
swtich 语句的基本格式如下:
num := 1
switch num {
case 1:
fmt.Println("1 -> 示例教程 mashangan.com")
case 2:
fmt.Println("2 -> 示例教程 mashangan.com")
default:
fmt.Println("error")
}
代码输出如下:
1 -> 示例教程 mashangan.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("示例教程 mashangan.com")
}
}
表达式直接用逗号 , 隔开即可。
三、分支表达式
case 后面除了定义常量以外,还可以像 if 语句一样添加表达式,代码如下:
package main
import "fmt"
func main() {
num := 1
switch {
case num > 0 && num < 2:
fmt.Println("示例教程 mashangan.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("示例教程 mashangan.com")
fallthrough
case num < 2:
fmt.Println("示例教程 mashangan.com")
}
}
代码输出如下:
示例教程 mashangan.com
示例教程 mashangan.com
五、结语
本小节中,我们学习了 Go 语言的 swtich 语句(分支选择),希望大家看完后有所收获。
分支判断可以理解成批量的 if 语句,使用 switch 语句可以非常方便地对大量值进行条件判断。
一、基本写法
Go 语言 改进了其他语言中 switch 语句的设计弊端。Go 语言中 switch 中的每一个 case 都是独立代码块,无需通过 break 语句跳出代码块,以避免执行到下一个 case 代码块。
PS: 如果你有其他语言的编程经验 (如 Java), 一定会对
case代码块中的break语句印象深刻。
swtich 语句的基本格式如下:
num := 1
switch num {
case 1:
fmt.Println("1 -> 示例教程 mashangan.com")
case 2:
fmt.Println("2 -> 示例教程 mashangan.com")
default:
fmt.Println("error")
}
代码输出如下:
1 -> 示例教程 mashangan.com
图示:

上面代码中,case 对整型 num 进行判断,若条件符合,则打印相应的字符串 。另外,还使用了 default 分支,default 分支表示若条件均不符合,则执行改代码块。
注意:每一个
swtich语句中只能有一个default分支。
二、一分支多值
当需要多个 case 放在一起的时候,代码格式如下:
package main
import "fmt"
func main() {
num := 1
switch num {
case 1, 2:
fmt.Println("示例教程 mashangan.com")
}
}
表达式直接用逗号 , 隔开即可。
三、分支表达式
case 后面除了定义常量以外,还可以像 if 语句一样添加表达式,代码如下:
package main
import "fmt"
func main() {
num := 1
switch {
case num > 0 && num < 2:
fmt.Println("示例教程 mashangan.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("示例教程 mashangan.com")
fallthrough
case num < 2:
fmt.Println("示例教程 mashangan.com")
}
}
代码输出如下:
示例教程 mashangan.com
示例教程 mashangan.com
五、结语
本小节中,我们学习了 Go 语言的 swtich 语句(分支选择),希望大家看完后有所收获。