Golang中的switch语句
Golang中的switch
语句,可以非常容易的判断多个值的情况。
Golang中switch语句的语法
1 2 3 4 5 6 7 8
| switch var1 { case val1: ... case val2: ... default: ... }
|
Golang中switch语句实例
判断成绩
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package main
import ( "fmt" )
func f1() { grade := 'A' switch grade { case 'A': fmt.Println("优秀") case 'B': fmt.Println("良好") case 'C': fmt.Println("及格") } }
func main() { f1() }
|
运行结果
多条件匹配
Golang中switch
语句,可以同时匹配多个条件,中间用逗号分隔,有其中一个匹配成功即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package main
import "fmt"
func f2() { day := 3 switch day { case 1, 2, 3, 4, 5: fmt.Println("工作日") case 6, 7: fmt.Println("休息日") default: fmt.Println("错误输入") } }
func main() { f2() }
|
运行结果
case可以是条件表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package main
import "fmt"
func f3() { score := 60 switch { case score >= 60: fmt.Println("及格") case score >= 80 && score < 90: fmt.Println("良好") case score >= 90 && score <= 100: fmt.Println("优秀") default: fmt.Println("不及格") } }
func main() { f3() }
|
运行结果
fallthrough可以执行满足条件后的下一个case
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package main
import "fmt"
func f4() { num := 100 switch num { case 100: fmt.Println("100") fallthrough case 200: fmt.Println("200") case 300: fmt.Println("300") } }
func main() { f4() }
|
运行结果
Golang中switch语句的注意事项
- 支持多条件匹配
- 不同的
case
之间不使用break
分隔,默认只会执行一个case
- 如果想要执行多个
case
,需要使用fallthrough
关键字,也可用break
中止
- 分支还可以使用
表达式
,例如:a>10
- 一个case中可以匹配多个值