选择语句顾名思义就是根据条件执行不同的逻辑的语句,和C++里一样,选择语句的关键字是switch和case,但和C++的不一样的是某个case后面不需要 break 就可以自动退出。看看如下例子:
Go
package mainimport "fmt"func main() { index := 2 switch index { case 1: fmt.Println("执行1") case 2: fmt.Println("执行2") case 3, 4: fmt.Println("执行3,4") case 5: fmt.Println("执行5") default: fmt.Println("默认情况") }}
如上代码,执行的话返回结果为:“执行2”。如果index等于3则返回“执行3”,若index不等于1,2,3,4的情况下则执行default关键字对应的语句,返回“默认情况”。
在Golang里选择语句switch后面的表达式是可以不写的,条件可以放在在case后面,同时golang里有关键字fallthrough,意思是执行下一个case。看看如下的代码实例:
Go
package mainimport "fmt"func main() { index := 3 switch { case index == 1: fmt.Println("执行1") case index == 2: fmt.Println("执行2") case index == 3: fallthrough case index == 4: fmt.Println("执行4") default: fmt.Println("默认情况") }}
上面的代码执行结果为:“执行4”。
swich后面的表达式支持字符类型,如下:
Go
package mainimport "fmt"func main() { s := "test" switch s { case "a": fmt.Println("执行a") case "b": fmt.Println("执行b") case "c": fmt.Println("执行c") default: fmt.Println("默认情况") }}
简单总结下:
-
case后无需break就可以退出case,若要执行下一个case则使用关键字fallthrough
-
switch后面的表达式是可以不写,条件可以在case后面
-
switch后面的表达式可以是常量,整型, 字符串 等类型