基本语法
switch 表达式{
case 表达式1,表达式2,......: //匹配到 表达式1 或 表达式2 都会执行后边的语句
语句块1
case 表达式3,表达式4,......:
语句块2
//这里可以有多个case语句
default:
语句块
}
(1)case后是一个表达式(即:常量值、变量、一个有返回值的函数等都可以)
(2)case后的各个表达式的值的类型,必须和switch的表达式数据类型一致
(3)case后面可以带多个表达式,使用逗号间隔。例如:case表达式1,case表达式2…
(4)case后面的表达式如果是常量值,则要求不能重复
(5)case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出switch,如果一个都匹配不到,则执行default
(6)default语句不是必须的
(7)switch后也可以不带表达式,类似多个if–else分支来使用
(8)switch后可以直接声明/定义一个变量,使用分号结束【不推荐使用】
(9)switch穿透fallthrough,如果在case语句块后增加fallthrough,则会继续执行下一个case,也叫switch穿透
示例一
package main
import "fmt"
func main() {
var key byte
fmt.Println("请输入一个字符[a,b,c]")
fmt.Scanf("%c", &key)
switch key {
case 'a':
fmt.Println("aa")
case 'b':
fmt.Println("bb")
case 'c':
fmt.Println("cc")
default:
fmt.Println("输入有误.......")
}
}