switch和if很相似。这里分为switch单值和表达式。我们仍然借用上一篇中if中的实例"老婆老公买西瓜包子"来做
switch
老婆的想法:
package main
import "fmt"
func main(){
var yes string
fmt.Print("是否看到卖西瓜的?")
fmt.Scan(&yes)
fmt.Print("老婆的想法:")
fmt.Println("买10个包子")
switch yes {
case "y":
fmt.Println("买一个西瓜y")
case "Y":
fmt.Println("买一个西瓜Y")
}
}
输入小y:
[root@marksugar /opt/Golang]# go run switch.go
是否看到卖西瓜的?y
老婆的想法:买10个包子
买一个西瓜y
输入大Y:
[root@marksugar /opt/Golang]# go run switch.go
是否看到卖西瓜的?Y
老婆的想法:买10个包子
买一个西瓜Y
输入n:
[root@marksugar /opt/Golang]# go run switch.go
是否看到卖西瓜的?n
老婆的想法:买10个包子
!!! note
这里的switch可以写成一条
case "y","Y":
fmt.Println("买一个西瓜")
}
老公的想法
switch default
package main
import "fmt"
func main(){
var yes string
fmt.Print("是否看到卖西瓜的?")
fmt.Scan(&yes)
fmt.Print("老公的想法:")
fmt.Println("买10个包子")
switch yes {
case "y","Y":
fmt.Println("买一个包子")
default:
fmt.Println("买十个包子")
}
}
看到卖西瓜的:
[root@marksugar /opt/Golang]# go run switch.go
是否看到卖西瓜的?y
老公的想法:买10个包子
买一个包子
没看到买西瓜的:
[root@marksugar /opt/Golang]# go run switch.go
是否看到卖西瓜的?n
老公的想法:买10个包子
买十个包子
在用switch的方式修改,如果输入大于等于90就打印A,大于等于80打印B,大于等于70打印C,大于等于60打印D,小于60就打印D-不及格。如下:
var score int
fmt.Print("请输入成绩:")
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("A")
case score >= 80:
fmt.Println("B")
case score >= 70:
fmt.Println("C")
case score >= 60:
fmt.Println("D")
default:
fmt.Println("D-,不及格")
}
运行
[root@marksugar /opt/Golang]# go run switch.go
请输入成绩:90
A
[root@marksugar /opt/Golang]# go run switch.go
请输入成绩:80
B
[root@marksugar /opt/Golang]# go run switch.go
请输入成绩:70
C
[root@marksugar /opt/Golang]# go run switch.go
请输入成绩:60
D
[root@marksugar /opt/Golang]# go run switch.go
请输入成绩:50
D-,不及格