• 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可控范围更广。

  • 相关阅读:
    Codeforces Beta Round #17 A
    Codeforces Round #382 (Div. 2) D. Taxes 哥德巴赫猜想
    Codeforces Round #382 (Div. 2)C. Tennis Championship 动态规划
    Codeforces Round #382 (Div. 2)B. Urbanization 贪心
    Codeforces Round #382 (Div. 2) A. Ostap and Grasshopper bfs
    Codeforces Beta Round #80 (Div. 2 Only)【ABCD】
    Codeforces Beta Round #62 题解【ABCD】
    Codeforces Round #160 (Div. 1) 题解【ABCD】
    Codeforces Round #383 (Div. 2) 题解【ABCDE】
    Codeforces Round #271 (Div. 2)题解【ABCDEF】
  • 原文地址:https://www.cnblogs.com/open-yang/p/11256802.html
Copyright © 2020-2023  润新知