美文网首页
golang学习笔记(四)流程控制

golang学习笔记(四)流程控制

作者: NIIIICO | 来源:发表于2022-11-09 10:40 被阅读0次
    1、if

    (1)条件语句没有()
    (2)支持1个初始化语句

    package main
    
    import "fmt"
    
    func main() {
        a := 1
    
        // 条件语句没有()
        if a == 1 {
            fmt.Printf("我是1\n")
        }
    
        // 支持1个初始化语句
        if b := 2; b > 1 {
            fmt.Printf("b:%d > 1\n", b)
        }
    }
    
    2、switch

    (1)switch后边没有()
    (2)默认会在语句后边添加 break,通过添加fallthrough会执行下一个case(无论是否满足)
    (3)支持一个初始化语句
    (4)switch可以没有条件,条件写在case上

    package main
    
    import "fmt"
    
    func main() {
        a := 1
    
        // switch后边没有()
        switch a {
        case 1:
            // 默认会在语句后边添加 break
            fmt.Println("我是1")
            // fallthrough会执行下一个case,无论是否满足
            // fallthrough
        case 2:
            fmt.Println("我是2")
        case 3:
            fmt.Println("我是3")
        default:
            fmt.Println("我是default")
        }
    
        // 支持一个初始化语句
        switch b := 1; b {
        case 1:
            fmt.Println("我是1")
        case 2, 3, 4: // 可以写多个条件
            fmt.Println("我是2")
        default:
            fmt.Println("我是default")
        }
    
        // 可以没有条件
        switch {
        case a == 1: // 条件写在case上
            fmt.Println("我是1")
        case a == 2:
            fmt.Println("我是2")
        default:
            fmt.Println("我是default")
        }
    }
    
    3、for

    (1)条件语句没有()
    (2)没有条件:死循环

    package main
    
    import "fmt"
    
    func main() {
        // 条件语句没有()
        for i := 0; i < 10; i++ {
            fmt.Println(i)
        }
    
        j := 0
        // 死循环
        for {
            j++
            if j == 10 {
                break
            }
        }
    }
    
    4、range

    迭代,返回下标(index,key)和值

    package main
    
    import "fmt"
    
    func main() {
        str := "abc"
        // 迭代,返回下标和值
        for index, value := range str {
            fmt.Printf("index:%d, value:%c\n", index, value)
        }
    
        mapName := map[string]string{
            "key1": "1",
            "key2": "2",
            "key3": "3",
        }
        // 迭代,返回key和值
        for key, value := range mapName {
            fmt.Printf("key:%s, value:%s\n", key, value)
        }
    }
    
    5、goto
    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("111111111111")
        goto END
        fmt.Println("222222222222")
        fmt.Println("333333333333")
    
    // 声明后必须使用
    END:
        fmt.Printf("end")
    }
    
    

    相关文章

      网友评论

          本文标题:golang学习笔记(四)流程控制

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