zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    返回值与返回引用的问题
    C内存之指针传递
    Elasticsearch-Java中文搜索器(下)
    Elasticsearch-Java中文搜索器(中)
    Elasticsearch-Java中文搜索器(上)
    Redis和Memcache对比及选择
    Java + Tomcat + Memcached + Nginx 实现负载均衡~下
    Java + Tomcat + Memcached + Ecs 实现负载均衡~上
    Java -- 偏向锁、轻量级锁、自旋锁、重量级锁
    Java 锁与对象头
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12018817.html
Copyright © 2011-2022 走看看