V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jadeborner
V2EX  ›  程序员

不支持 goto 的语言,不是好语言

  •  
  •   jadeborner · 2021-01-28 14:35:14 +08:00 · 1694 次点击
    这是一个创建于 1176 天前的主题,其中的信息可能已经有所发展或是发生改变。
    没有哪一种方法比 goto 从多层循环中跳出更优雅了
    12 条回复    2021-01-29 22:01:22 +08:00
    hupo0
        1
    hupo0  
       2021-01-28 15:42:39 +08:00
    return
    scukmh
        2
    scukmh  
       2021-01-28 17:35:20 +08:00
    资瓷
    gdtdpt
        3
    gdtdpt  
       2021-01-28 18:40:07 +08:00
    更优雅的可能是不写多层循环……
    bruce0
        4
    bruce0  
       2021-01-28 19:01:00 +08:00
    @gdtdpt 虽然是这个道理 但是有些时候必须要多层循环

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

    一般的语言都告诉开发者 尽量避免使用 goto 但是 go 语言很多地方推荐使用 goto 而且 break 也可以和 goto 一样 跳到指定位置
    wander639
        5
    wander639  
       2021-01-28 19:05:47 +08:00 via iPhone
    go 里面 for-select 基本上都是用 goto 跳出的
    asAnotherJack
        6
    asAnotherJack  
       2021-01-28 19:53:21 +08:00
    @wander639 #5 可以试下 label
    mxalbert1996
        7
    mxalbert1996  
       2021-01-28 22:44:30 +08:00 via Android
    减少潜在的屎山也不是坏事
    Kasumi20
        8
    Kasumi20  
       2021-01-29 00:19:54 +08:00
    @gdtdpt 请问如何将冒泡排序、选择排序等二层循环降维
    aguesuka
        9
    aguesuka  
       2021-01-29 16:44:20 +08:00 via Android
    @Kasumi20 递归,把优化交给编译器
    uselessVisitor
        10
    uselessVisitor  
       2021-01-29 17:19:23 +08:00
    多层循环不应该优化吗?反而 goto ?
    Kasumi20
        11
    Kasumi20  
       2021-01-29 18:09:19 +08:00
    @aguesuka 递归还行,我直呼内行
    aguesuka
        12
    aguesuka  
       2021-01-29 22:01:22 +08:00 via Android
    @Kasumi20 按照主楼的思路,当然是 haskell,agda 这种最优雅,它们都是没 for while 循环的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1148 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:08 · PVG 07:08 · LAX 16:08 · JFK 19:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.