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#与XML
    ASP.NET读取Excel文件的三大方法浅析
    当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限。
    比较这2段HTML代码
    编码的一点思维
    代码修改的一个范例
    在aspx.cs中不出现中文?
    规则先行
    设计模式——UML简介
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12018817.html
Copyright © 2011-2022 走看看