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
原文地址:https://www.cnblogs.com/wangcuican/p/12018817.html