美文网首页
golang 中的高级循环

golang 中的高级循环

作者: 追风骚年 | 来源:发表于2021-03-16 23:59 被阅读0次

    一般的 break 语句只能跳出当前循环,没办法控制跳出到上级循环,但是 golang 中提供了类似 goto 的方式 label breaks

    package main
    
    import "fmt"
    
    func t1() {
    
        for i := 0; i < 2; i++ {
            breaki := false
            for j := 0; j < 5; j++ {
                if j == 2 {
                    breaki = true
                    break
                }
                fmt.Println("hello")
            }
    
            if breaki {
                break
            }
            fmt.Println("hi")
        }
    }
    
    func t2() {
    
    I:
        for i := 0; i < 2; i++ {
            for j := 0; j < 5; j++ {
                if j == 2 {
                    break I
                }
                fmt.Println("hello")
            }
    
            fmt.Println("hi")
        }
    }
    
    func main() {
        t1()
        fmt.Println("---")
        t2()
    }
    

    t1 为传统写法,t2 为label breaks高级写法,在循环起始的地方定义一个 label,在 break 的时候可以接上 label,到达跳出那一层循环。

    相关文章

      网友评论

          本文标题:golang 中的高级循环

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