• 06-switch语句


    switch语句

    switch是一个条件语句,它是可以代替多个if else的常用方式

    例子

    package main
    import "fmt"
    
    func main() {
        a:=10  #定义一个变量a=10
        switch a {
        case 1:
            fmt.Println("1")
        case 2:
            fmt.Println("2")
        case 10:
            fmt.Println("10")
    
        }
    }

    switch a 将 a 的值与每个case后面的值进行比较,符合条件的就执行相应的代码。注意:case不允许出现重复值

    默认情况default

    当其他情况都没匹配上时会执行default的代码。default不一定只能出现在switch语句的最后,他可以放在switch语句的任何地方

    package main
    import "fmt"
    
    func main() {
        a:=11
        switch a {
        case 1:
            fmt.Println("1")
        case 2:
            fmt.Println("2")
        case 10:
            fmt.Println("10")
        default:
            fmt.Println("不知道")
        }
    }

    多表达式判断

    通过用逗号分隔,可以在一个case中包含多个表达式

    package main
    import "fmt"
    
    func main() {
        a:=11
        switch a {
        case 1,4,5:
            fmt.Println("1")
        case 2,8,9:
            fmt.Println("2")
        case 10,11:
            fmt.Println("10")
        default:
            fmt.Println("不知道")
        }
    }
    #结果
    10

    无表达式的switch

    打印符合条件的相应代码

    package main
    import "fmt"
    
    func main() {
        a:=11
        switch {  #无表达式a
        case a>10:
            fmt.Println("大于10")
        case a<10:
            fmt.Println("小于10")
        default:
            fmt.Println("10")
        }
    }
    #结果
    大于10

    Fallthrough语句

    在Go中,每执行完一个case后,会从switch语句中跳出来,不再做后续case的判断和执行。使用Fallthrough语句可以在已经执行完成的case之后,把控制权转移到下一个case的执行代码中。

    package main
    import "fmt"
    
    func main() {
        a:=10
        switch a {
        case 1:
            fmt.Println("1")
            fmt.Println("xxxx")
        case 2:
            fmt.Println("2")
        case 10:
            fmt.Println("10")
            //穿透,无条件执行下一个case的内容
            fallthrough
        case 11:
            fmt.Println("11")
            fallthrough
        case 12:
            fmt.Println("12")
        }
    }
    #结果
    10,11,12
  • 相关阅读:
    PAT (Advanced Level) 1086. Tree Traversals Again (25)
    PAT (Advanced Level) 1085. Perfect Sequence (25)
    PAT (Advanced Level) 1084. Broken Keyboard (20)
    PAT (Advanced Level) 1083. List Grades (25)
    PAT (Advanced Level) 1082. Read Number in Chinese (25)
    HDU 4513 吉哥系列故事――完美队形II
    POJ Oulipo KMP 模板题
    POJ 3376 Finding Palindromes
    扩展KMP
    HDU 2289 Cup
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12018817.html
Copyright © 2020-2023  润新知