Golang学习笔记(十四):Switch语句

https://juejin.im/post/5c8e4554e51d4523e513143f

switch语句的使用

Go语言中的switch语句与if语句一样,用于条件判断,在Go语言中,对于像其他语句中需要使用if…else if进行多重判断的逻辑,推荐使用switch语句来判断。

switch的一般格式如下所示,其中expr可以是任意类型的值,switch语句会将expr与case分支后面的类型比较,所以case后面跟的表达式得到的类型与expr必须是相同的,如果有分支相等,则执行该分支下的代码,如果都不匹配,有default分支,则执行default分支。

  1. switch expr {
  2. case:v1
  3. 语句体
  4. case:v2
  5. 语句体
  6. default:
  7. 语句体
  8. }

下面使用一个示例演示switch的简单使用,该示例运行结果为输出test。

  1. package main
  2. import "fmt"
  3. func main() {
  4. expr := "test"
  5. switch expr {
  6. case "test1":
  7. fmt.Printf("test1")
  8. case "test":
  9. fmt.Println("test")
  10. case "test2":
  11. fmt.Println("test2")
  12. default:
  13. fmt.Println("default")
  14. }
  15. }

如果你有其他编程语言的经验,应该知道其他编程语言使用swtich,必须使用break语句断开case分支,否则swtich语句会在执行满足条件的case语句后,继续执行后面的case语句,则在Go语言则不需要这么做。

如果需要swtich语句在执行满足条件的case语句后,继续执行后面的语句,则可以使用fallthrough语句,我们在上面例子中添加fallthrough,则在执行case “test”分支的代码后,也会执行后面的分支。

  1. case "test":
  2. fmt.Println("test")
  3. fallthrough

swtich语句后面的expr也是可以省略的,如果省略,则默认expr为bool型的true,因此,case分支后面的表达式的值也必须是bool型

  1. swtich {
  2. }
  3. 相当于
  4. swtich true{
  5. }
ft_authoradmin  ft_create_time2019-08-03 17:08
 ft_update_time2019-08-03 17:08