zoukankan      html  css  js  c++  java
  • 4.2 Go switch

    4.2 Go switch

    switch语句用于基于不同条件执行不同动作,每一个case分支唯一,自上而下逐一测试,直到匹配结束,默认自动终止不需要break

    2. switch基本语法

    1. switch后面跟着表达式(变量、常量、有返回值函数等)
    2. case后面的表达式必须和switch表达式数据类型一致
    3. case后可以有多个表达式
    4. case后面表达式常量不得重复
    package main
    
    import "fmt"
    
    func main() {
        var week int
        fmt.Println("请输入星期几:")
        fmt.Scanln(&week)
    
        switch week {
        case 1:
            fmt.Println("星期一,上班!!")
        case 2, 3, 4, 5:
            fmt.Println("星期二到星期五,你还得上班!!")
        case 6:
            fmt.Println("周六你就想休息?加班!!")
        case 7:
            fmt.Println("老子迟早要辞职,终于能休息了!!")
        default:
            fmt.Println("输入错误你就必须得上班!!")
        }
    }
    
    1. switch替代if-else使用
    package main
    
    import "fmt"
    
    func main() {
        var score int
        fmt.Println("请录入你的成绩:>")
        fmt.Scanln(&score)
        switch {
        case score > 90:
            fmt.Println("成绩优秀")
        case score >= 70:
            fmt.Println("及格中等")
        case score >= 60:
            fmt.Println("勉强及格了")
        default:
            fmt.Println("恭喜你,考试不及格")
        }
    }
    
    1. switch之穿透fallthrough,在case语句块后添加fallthrough会继续执行下一个case
    package main
    
    import "fmt"
    
    func main() {
        var score int
        fmt.Println("请录入你的成绩:>")
        fmt.Scanln(&score)
        switch {
        case score > 90:
            fmt.Println("成绩优秀")
            fallthrough
        case score >= 70:
            fmt.Println("及格中等")
        case score >= 60:
            fmt.Println("勉强及格了")
        default:
            fmt.Println("恭喜你,考试不及格")
        }
    }
    

    7.switch还可以用于判断interface变量实际存储的变量类型。

    package main
    
    import "fmt"
    
    func main() {
        var x interface{} //x是空接口类型,可以接收任意类型
        var y = 19.9
        x = y
        switch i := x.(type) {
        case nil:
            fmt.Printf("x的类型是%T
    ", i)
        case float64:
            fmt.Printf("x的类型是%T
    ", i)
        default:
            fmt.Println("未知类型")
        }
    }
    

    2.1. switch和if

    判断的具体数值不多,符合整数、浮点数、字符、字符串等类型,建议用switch。

    对bool类型的判断,用if,if可控范围更广。

  • 相关阅读:
    vue 短期时间
    使用moment.js写一个倒计时
    使用moment.js
    js 共用文件内容应用
    什么是闭包?闭包的优缺点?
    卧龙阶段
    音阶
    初步理解1=C
    认识简谱的构造,唱名,音名

  • 原文地址:https://www.cnblogs.com/open-yang/p/11256802.html
Copyright © 2011-2022 走看看