七叶笔记 » golang编程 » 吾八哥学Golang(四):Golang里的流程控制-选择语句

吾八哥学Golang(四):Golang里的流程控制-选择语句

选择语句顾名思义就是根据条件执行不同的逻辑的语句,和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("默认情况")
 }} 

简单总结下:

  1. case后无需break就可以退出case,若要执行下一个case则使用关键字fallthrough

  2. switch后面的表达式是可以不写,条件可以在case后面

  3. switch后面的表达式可以是常量,整型, 字符串 等类型

相关文章