linuxea:go流程控制之switch(13)

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-,不及格
0 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2019-10-17分类: Golang

标签: Golang

发表评论