1、经典案例
func main() {
a := 1
switch a {
case 0:
fmt.Println("a = 0 ")
case 1:
fmt.Println("a = 1")
default:
fmt.Println("Unknown")
}
}
//运行结果
a = 1
2、(1) 可以使用任何类型或表达式作为条件语句;
(2)不需要写break,一旦条件符合自动终止;
(3)若希望继续执行下一个case,需使用fallthrough语句
func main() {
var a = 8
switch {
case a >= 0:
fmt.Println("a >= 0 ")
fallthrough
case a >= 5:
fmt.Println("a >= 5")
fallthrough
default:
fmt.Println("Unknown")
}
}
//运行结果
a >= 0
a >= 5
Unknown
(4)支持一个初始化表达式(可以是并行方式),右侧需跟分号
func main() {
switch a := 8; {
case a >= 0:
fmt.Println("a >= 0 ")
fallthrough
case a >= 5:
fmt.Println("a >= 5")
fallthrough
default:
fmt.Println("Unknown")
}
}
//运行结果
a >= 0
a >= 5
Unknown
注: 变量a的作用域为switch语句内部。
(5)做大括号必须和条件语句在同一行