Go语言之循环语句

作者: 灰常出色 | 来源:发表于2019-07-21 11:42 被阅读51次

    微信首发,欢迎关注:


    weixin.png

    Go语言中的循环语句只有for,没有while和do/while这两种格式。
    Go语言中的for语句的表达形式有三种实现方式:

    1、基于计数器的实现。

    语法规则如下所示,这与C++的for循环实现模式基本类似,不过没有()。

    for i := 0; i<N; ++i {  // 备注与C++的不同:1. 表达式不需要添加括号,2.{ 要与for语句在同一行
    }
    

    例子:

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        for i := 0; i < 5; i++ {
            fmt.Println("Hello, i:",i)
        }
        fmt.Println("Hello, playground:")
        return
    }
    

    Output:

    Hello, i: 0
    Hello, i: 1
    Hello, i: 2
    Hello, i: 3
    Hello, i: 4
    Hello, playground:
    

    实现无限循环:

    // 方式一:
    for i := 0; ; i++ {
            fmt.Println("Hello, i:",i)
        }
    // 方式二:
    for ; ;  {
            fmt.Println("Hello, playground:")
        }
    // 方式三:
    for {
            fmt.Println("Hello, playground:")
        }
    

    2、基于条件判断的实现。

    格式为:for 条件语句 {
    }
    例子如下所示:

    package main
    import (
        "fmt"
    )
    func main() {
            i := 0
        for i < 5 {
            fmt.Println("Hello, playground:",i)
            i += 2
        }
        return
    }
    Output:
    Hello, playground: 0
    Hello, playground: 2
    Hello, playground: 4
    

    实现无限循环:

    for true { // 备注:这里的实现方式与C++中的while类似。
              fmt.Println("Hello, playground:")
    }
    

    3、基于for-range的实现。

    格式为:for idx, value := range collection {
    } // 备注:这里的实现与C++中的foreach很类似。
    例子为:

    package main
    import (
        "fmt"
    )
    func main() {
           // 1. 数组的循环
            strs := []string{"Hello", "World", "I", "Love", "You!"}
        for i, str := range strs {
            fmt.Println("Hello, Strs:", i, str)
        }
        // 2. map的循环
        strMap := map[string]string {
            "a":"Hello",
            "b":"The",
            "c":"World",
        }
        for i, str := range strMap {
            fmt.Println("Hello, strMap:", i, str)
        }
        return
    }
    

    Output: // 备注:从map的输出顺序来看,map并不能保证初始化的顺序和输出的顺序是一致的

    Hello, Strs: 0 Hello
    Hello, Strs: 1 World
    Hello, Strs: 2 I
    Hello, Strs: 3 Love
    Hello, Strs: 4 You!
    Hello, strMap: b The
    Hello, strMap: c World
    Hello, strMap: a Hello
    

    灰子作于二零一九年七月五日。
    【原创作品,欢迎分享,请勿转载,谢谢尊重!!】

    首发,微信:https://mp.weixin.qq.com/s?__biz=Mzg3ODI0ODk5OQ==&mid=2247483688&idx=1&sn=3d49e1525988c726d75f21182403738e&chksm=cf17d460f8605d76e951ca1aac814326cb86f65eb29c15434d7b4871ac92ee00f1d913b04011&token=2128984918&lang=zh_CN#rd

    相关文章

      网友评论

        本文标题:Go语言之循环语句

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