基本语法

  1. switch 变量(表达式){
  2. case 1
  3. 语句块
  4. case 2:
  5. 语句块
  6. ......
  7. default:
  8. 语句块
  9. }

示例

  1. package main
  2. import "fmt"
  3. func main(){
  4. var score int = 69
  5. switch score{
  6. case 90:
  7. fmt.Println("A")
  8. case 80:
  9. fmt.Println("B")
  10. case 70,60,50:
  11. //1.支持多个条件的匹配
  12. //2.不同的case之间不需要break
  13. fmt.Println("C")
  14. default:
  15. fmt.Println("E")
  16. }
  17. }
  18. //输出:E

switch同if-else相同,也支持一个初始化语句,并用;分隔。

  1. package main
  2. import "fmt"
  3. func main(){
  4. switch a := 100; a{
  5. case 90:
  6. fmt.Println("90")
  7. case 100:
  8. fmt.Println("100")
  9. }
  10. }
  11. //输出:100

switch语句也可以在case里进行判断

  1. package main
  2. import "fmt"
  3. func main(){
  4. a := 100
  5. switch{//switch也可以在case里进行判断。
  6. case a == 70:
  7. fmt.Println("70")
  8. case a == 80:
  9. fmt.Println("80")
  10. case a == 100
  11. fmt.Println("100")
  12. }
  13. }

if和switch比较

if语句更适合区间判断,嵌套使用
switch执行效率更高高,可以将多个满足相同条件的值放在一起,更适合做固定值判断。