zoukankan      html  css  js  c++  java
  • 【转】golang for select 循环跳出

    原文:https://blog.csdn.net/bravezhe/article/details/81674591

    ---------------------------------------------------------

    golang for select 循环跳出
    原创墨子哲 发布于2018-08-14 21:10:30 阅读数 4194 收藏
    展开
    执行以下代码,发现无法跳出for循环:

    func SelectTest() {
    i := 0
    for {
    select {
    case <-time.After(time.Second * time.Duration(2)):
    i++
    if i == 5 {
    fmt.Println("跳出for循环")
    }
    }
    fmt.Println("for循环内 i=", i)
    }
    fmt.Println("for循环外")
    }
    解决办法有两个:

    1.使用break:

    func SelectTest() {
    i := 0
    Loop:
    for {
    select {
    case <-time.After(time.Second * time.Duration(2)):
    i++
    if i == 5 {
    fmt.Println("跳出for循环")
    break Loop
    }
    }
    fmt.Println("for循环内 i=", i)
    }

    fmt.Println("for循环外")

    }
     

    2.使用goto:

    func SelectTest() {
    i := 0
    for {
    select {
    case <-time.After(time.Second * time.Duration(2)):
    i++
    if i == 5 {
    fmt.Println("跳出for循环")
    goto Loop
    }
    }
    fmt.Println("for循环内 i=", i)
    }
    Loop:
    fmt.Println("for循环外")
    }
    分析:

    使用break lable 和 goto lable 都能跳出for循环;不同之处在于:break标签只能用于for循环,且标签位于for循环前面,goto是指跳转到指定标签处
    ————————————————
    版权声明:本文为CSDN博主「墨子哲」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/bravezhe/article/details/81674591

  • 相关阅读:
    js 黑科技操作
    js判断是否是苹果浏览器
    rem750.js
    写过的bug
    mongdb学习
    [刘阳Java]_第一个Java程序_第7讲
    [刘阳Java]_步步窥探JS变量作用域
    [刘阳Java]_Web前端笔试题总结
    [刘阳Java]_酷炫视频播放器制作_JS篇
    [刘阳Java]_酷炫视频播放器制作_界面篇
  • 原文地址:https://www.cnblogs.com/oxspirt/p/12155091.html
Copyright © 2011-2022 走看看