• 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
  • 相关阅读:
    解决MySql报错:1130
    Mac 安装 RabbitMQ 出现的问题
    Java 中的关键字
    ExtJS 去除水印
    MAC VMware fusion 12.1.0 Centos7 网络配置
    Linux常见目录结构
    CentOS 设置网络及安装 ifconfig
    Web项目部署到IIS的方法
    异常处理-System.IO.IOException: 由于远程方已关闭传输流,身份验证失败
    C#委托总结-匿名方法&Lambda表达式
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12018817.html
Copyright © 2020-2023  润新知