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

选择语句顾名思义就是根据条件执行不同的逻辑的语句,和C++里一样,选择语句的关键字是switch和case,但和C++的不一样的是某个case后面不需要break就可以自动退出。看看如下例子:

package main

import "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。看看如下的代码实例:

package main

import "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后面的表达式支持字符类型,如下:

package main

import "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后面的表达式可以是常量,整型,字符串等类型

版权所有原创文章,转载请保留或注明出处:http://www.5bug.wang/post/58.html