【发布时间】:2017-10-31 01:58:53
【问题描述】:
我在这本书中读到我正在学习 C++ 中的循环,它首先教的是 goto,但在接近尾声时它说不要使用它,因为这是不好的做法,并说它创建了“意大利面条”代码。我不明白这意味着什么以及为什么它不好。有人可以解释一下吗?
【问题讨论】:
-
关于该主题的经典论文:Go To Statement Considered Harmful 由 Dijkstra(最短路径算法等著名),1968 年
-
因为有更安全和可读的方式来做事!如果你必须这样做,这是一个非常糟糕的设计的危险信号!
-
@MaximeGélinas 全面解雇 goto 也是不健康的。 goto 有 一些 的有效用途,即打破 n 嵌套循环。
-
当然,n-nested循环通常可以移出到一个单独的函数中,然后你可以使用return关键字将它们“打破”;所以即使那样 goto 也不是唯一的选择。
-
我不明白这是什么意思,为什么不好。有人可以解释一下吗? -- 有一件事,如果你发布一个关于代码不起作用的问题,并且它充满了
goto声明,那么你帮助你的人的机会减少了大约95 - 99%。经验丰富的程序员不会浪费时间试图找出意大利面条式代码。
标签: c++