switch变量会与case中的变量进行匹配,匹配到哪个进入哪个case中执行。
switch没个case执行完会自动break,匹配成功后进入到case中执行,执行完退出,不会去执行其他case,可以使用fallthrough强制执行后面的case代码
变量可以是任何类型,而变量1和变量2则可以是同类型的人一直,类型不被局限于常量或整数,但必须是相同的类型
也可以同时测试多个可能符合条件的值,用逗号分割
例: case 变量1,变量2,变量3:
default为可选内容
switch 变量 {
case 变量1:
....
case 变量2
....
default:
.....
}
package main
import "fmt"
func main() {
var instr string
fmt.Print("输入指令:")
fmt.Scan(&instr)
switch instr {
case "run1":
fmt.Println("running 1")
case "run2":
fmt.Println("running 2")
case "run3":
fmt.Println("running 3")
default:
fmt.Println("running default")
}
var num int
fmt.Print("输入数字:")
fmt.Scan(&num)
switch {
case num >=90:
fmt.Println("A")
default:
fmt.Println("B")
}
}
如果switch后面变量设置为空,相当于直接作用在true上
switch{
case true:
.....
case false:
. ....
}