golang流程控制

go语言中的流程控制有两种实现方式,分别是if 和switch语句,switch语句类似于if 语句的多分支。

if语句

if语言需要接一个表达式且,运算的结果只能bool类型的

func main() {
    if 0==0 {
        fmt.Println(3)
    }
}

if语句的其他写法

这种在if后面先添加了一个赋值的操作,在去运算的,a的作用域,只在当前if中生效。

func main() {
    if a := 1; a == 1 {
        fmt.Println(6)
    }
}

 if语句多分支方式

 使用 else if 可以多分支的判断条件,但是只能有一个分支执行。

func main() {
    a := 100
    if a == 1 {
        fmt.Println(1)

    } else if a == 2 {
        fmt.Println(2)
    } else {
        fmt.Println(3)
    }
}

 switch语句

func main() {
    a := 1
    switch {
    case a == 1:
        fmt.Println(1)
    case a == 2:
        fmt.Println(2)
    case a == 3:
        fmt.Println(3)
    }
}
也可以写成下面显示
func main() {
    a := 1
    switch a {
    case 1:
        fmt.Println(1)
    case 2:
        fmt.Println(2)
    case 3:
        fmt.Println(3)
    }
}



switch中的default语句,

default语句是switch语句的一个默认执行的分支,也就是说所有的case都不成立,那么就执行default

func main() {
    a := 100
    switch a {
    case 1:
        fmt.Println(1)
    case 2:
        fmt.Println(2)
    case 3:
        fmt.Println(3)
    default:
        fmt.Println(0)
    }
}

 switch的其他写法

当switch没有条件的时候,默认当case的值为true的分支,执行

func main() {
    switch {
    case true:
        fmt.Println(1)
    case false:
        fmt.Println(2)
    }
}

switch穿透

fallthrough关键字用来在switch语句中,穿透case分支用的,fallthrough会直接穿透到下一个case分支执行。
func main() {
    a := 1
    switch {
    case a == 1:
        fmt.Println(1)
        fallthrough
    case a == 2:
        fmt.Println(2)
    }
}
原文地址:https://www.cnblogs.com/Nolover/p/12510416.html