美文网首页Go学习笔记
Go学习笔记03 | 流程控制

Go学习笔记03 | 流程控制

作者: Wonz | 来源:发表于2020-11-22 13:09 被阅读0次

    一、if else for

    if

    写在 if 里面,则是局部变量:

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        if age := 34; age > 20 {
            fmt.Println("成年人", age)
        }
        fmt.Println(age)  // 这行没有输出,会报错
    }
    

    写在 if 外面,则是全局变量:

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        age := 34
        if age > 20 {
            fmt.Println("成年人", age)
        }
        fmt.Println(age)
    }
    

    输出:

    成年人 34
    34
    

    细节

    • if {} 括号不能省略
    • { 必须紧挨着条件,不能换行

    for

    初始化值可以写在 for 外面,但是循环里第一个 ; 还是必须写,否则报错。

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        i := 1
        for ; i < 10; i++ {
            fmt.Println(i)
        }
    }
    

    for range:切片

    swich case

    条件判断。初始化赋值也可以写在 switch 里面,但是要加 ;

    Golang 中 switch case 可以不写 break。多个 case 值用 , 隔开。

    分支使用表达式,此时 switch 语句后面不需要再写判断变量。如果写了判断变量,则会报错。

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        var age = 30
        switch {
        case age < 24:
            fmt.Println("好好学习")
        case age >= 24 && age <= 60:
            fmt.Println("好好赚钱")
        case age > 60:
            fmt.Println("注意身体")
        default:
            fmt.Println("输入错误")
        }
    }
    

    Golang 穿透

    fallthrough 可以执行满足 case 条件的下一个 case,只穿透紧挨着的 case 一次。

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        var age = 30
        switch {
        case age < 24:
            fmt.Println("好好学习")
        case age >= 24 && age <= 60:
            fmt.Println("好好赚钱")
            fallthrough
        case age > 60:
            fmt.Println("注意身体")
        default:
            fmt.Println("输入错误")
        }
    }
    

    输出:

    好好赚钱
    注意身体
    

    二、continue break goto

    在多重循环中,可以用标号 label 标出想 break 的循环。

    continue 仅限在 for 循环内使用,只跳出当前循环。

    goto 跳转到指定标签。

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        var n = 30
        if n > 24 {
            fmt.Println("成年人")
            goto label3
        }
    
        fmt.Println("a")
        fmt.Println("b")
    label3:
        fmt.Println("c")
    }
    

    输出:

    成年人
    c
    

    三、参考教程

    Golang 教程 P13-16

    相关文章

      网友评论

        本文标题:Go学习笔记03 | 流程控制

        本文链接:https://www.haomeiwen.com/subject/vaieiktx.html