switch 是一个条件语句,用于将表达式的值与可能匹配的选项列表进行比较,并根据匹配情况执行相应的代码块。它可以被认为是替代多个 if else
子句的常用方式。
package main import "fmt" func main() { a:=10 switch a { case 1: fmt.Println("1") case 2: fmt.Println("2") case 10: fmt.Println("10") //因为a=10所以会打印此处结果 }
2.default(默认值)
package main import "fmt" func main() { a:=11 switch a { case 1: fmt.Println("1") case 2: fmt.Println("2") case 10: fmt.Println("10") default: fmt.Println("不知道") //a=11,不属于以上任何一个,打印结果为默认值 }
3.多值匹配
package main import "fmt" func main() { a:=11 switch a { case 1,4,5: fmt.Println("1") case 2,8,9: fmt.Println("2") case 10,11: fmt.Println("10") // a=11,当中有11的就可以会打印结果 default: fmt.Println("不知道") }
4.无表达式
package main import "fmt" func main() { a:=11 switch { case a>10: fmt.Println("大于10") case a<10: fmt.Println("小于10") default: fmt.Println("10") }
6.穿透(fallthrough)
package main import "fmt" func main() { a:=10 switch a { case 1: fmt.Println("1") fmt.Println("xxxx") case 2: fmt.Println("2") case 10: fmt.Println("10") //穿透,无条件执行下一个case的内容 fallthrough case 11: fmt.Println("11") test5() fallthrough case 12: fmt.Println("12") } }