美文网首页
go学习四·循环

go学习四·循环

作者: 那钱有着落吗 | 来源:发表于2021-03-08 10:39 被阅读0次

    一、for循环变体

    所有的三个组成部分,即初始化、条件和post都是可选的。

    for condition { }
    
    

    效果与while相似

    for { }
    
    

    效果与for(;;) 一样

    for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环

    for key, value := range oldMap {
        newMap[key] = value
    }
    
    
    package main
    
    import "fmt"
    
    func main() {
    
       var b int = 15
       var a int
    
       numbers := [6]int{1, 2, 3, 5} 
    
       /* for 循环 */
       for a := 0; a < 10; a++ {
          fmt.Printf("a 的值为: %d\n", a)
       }
    
       for a < b {
          a++
          fmt.Printf("a 的值为: %d\n", a)
          }
    
       for i,x:= range numbers {
          fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
       }   
    }
    

    运行结果:

    a 的值为: 0
    a 的值为: 1
    a 的值为: 2
    a 的值为: 3
    a 的值为: 4
    a 的值为: 5
    a 的值为: 6
    a 的值为: 7
    a 的值为: 8
    a 的值为: 9
    a 的值为: 1
    a 的值为: 2
    a 的值为: 3
    a 的值为: 4
    a 的值为: 5
    a 的值为: 6
    a 的值为: 7
    a 的值为: 8
    a 的值为: 9
    a 的值为: 10
    a 的值为: 11
    a 的值为: 12
    a 的值为: 13
    a 的值为: 14
    a 的值为: 15
    第 0 位 x 的值 = 1
    第 1 位 x 的值 = 2
    第 2 位 x 的值 = 3
    第 3 位 x 的值 = 5
    第 4 位 x 的值 = 0
    第 5 位 x 的值 = 0
    
    

    2.2 多层for循环

    for循环中又有循环嵌套,就表示多层循环了。

    二、跳出循环的语句

    1、 break语句

    break:跳出循环体。break语句用于在结束其正常执行之前突然终止for循环

    示例代码:

    package main
    
    import (  
        "fmt"
    )
    
    func main() {  
        for i := 1; i <= 10; i++ {
            if i > 5 {
                break //loop is terminated if i > 5
            }
            fmt.Printf("%d ", i)
        }
        fmt.Printf("\nline after for loop")
    }
    

    2、continue语句

    continue:跳出一次循环。continue语句用于跳过for循环的当前迭代。在continue语句后面的for循环中的所有代码将不会在当前迭代中执行。循环将继续到下一个迭代。

    示例代码:

    package main
    
    import (  
        "fmt"
    )
    
    func main() {  
        for i := 1; i <= 10; i++ {
            if i%2 == 0 {
                continue
            }
            fmt.Printf("%d ", i)
        }
    }
    

    四、goto语句

    goto:可以无条件地转移到过程中指定的行。

    语法结构:

    goto label;
    ..
    ..
    label: statement;
    
    image.png
    package main
    
    import "fmt"
    
    func main() {
       /* 定义局部变量 */
       var a int = 10
    
       /* 循环 */
       LOOP: for a < 20 {
          if a == 15 {
             /* 跳过迭代 */
             a = a + 1
             goto LOOP
          }
          fmt.Printf("a的值为 : %d\n", a)
          a++     
       }  
    }
    

    统一错误处理 多处错误处理存在代码重复时是非常棘手的,例如:

            err := firstCheckError()
        if err != nil {
            goto onExit
        }
        err = secondCheckError()
        if err != nil {
            goto onExit
        }
        fmt.Println("done")
        return
    onExit:
        fmt.Println(err)
        exitProcess()
    
    

    相关文章

      网友评论

          本文标题:go学习四·循环

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