|
1
135
因为它们会导致 spaghetti code . 在过去,编程语言没有while循环、if语句等,程序员使用goto来组成程序的逻辑。它会导致无法维护的混乱。 这就是CS神创建方法、条件和循环的原因。 Structured 编程在当时是一场革命。
|
|
|
2
84
没有什么不对的
使用
|
|
|
3
37
goto本身没有错。它在编程中是一个非常有用的构造,有许多有效的用途。想到的最好的方法是在C程序中释放结构化的资源。
|
|
|
4
32
1968年,
Edsger Dijkstra
ACM通信
GOTO is considered harmful
在这篇文章中,他用
while循环
如果…那么…否则
条件句。当GOTO被用来代替这些控制结构时,结果往往是
spaghetti code
. 几乎现在使用的每一种编程语言都是结构化的编程语言,GOTOs的使用也几乎被淘汰了。事实上,Java、Scala、Ruby和Python没有
C、C++和Perl仍然有GOTO命令,并且在某些情况下(特别是C) GOTO is useful ,例如,退出多个循环的break语句,或将清除代码集中到函数中的一个位置,即使有多种方法终止函数(例如,通过在函数过程中的多个点返回错误代码)。但一般来说,它的使用应该局限于特定的设计模式,这些模式以一种受控和公认的方式要求它。 ScopeGuard (more) 而不是使用GOTO进行清理。但是GOTO是一个 frequently used idiom in the Linux kernel ( another source XKCD漫画是一个关于“当某些特定的设计模式被它的使用大大帮助时,GOTO是否应该总是被认为是有害的?” |
|
|
5
9
你用谷歌搜索过这个问题吗? 反goto运动的创始人是Edsger Dijskstra,他有着传奇性的“goto被认为是有害的” 为了让你开始你可以去(哈哈!) http://en.wikipedia.org/wiki/GOTO |
|
|
6
8
在C++中是可能的,因为在C.,你是否应该使用它是可能的,是长期的宗教战争。
这是C++的设计目标,在C语言中,99点C的程序应该用C++中的相同功能编译和运行。包括
|
|
|
Kurogami · 错误C2059:语法错误:“}”C++ 8 年前 |
|
|
Bhaskar Bhuyan · 如何在python中循环回特定点 9 年前 |
|
|
Sneftel · 为什么在constexpr函数中不允许goto? 9 年前 |
|
|
Mazhar Ali · 批处理文件系统在循环后找不到文件 9 年前 |
|
|
WhiteTail · 为什么“goto”被视为不好的形式? 9 年前 |
|
|
Trevor Thorpe · 这是使用goto的安全方式吗? 9 年前 |
|
Potatoswatter · 当跳过声明时,为什么需要琐碎的析构函数? 10 年前 |
|
Sarvadi · “goto*foo”,其中foo不是指针。这是什么? 10 年前 |
|
|
AkiEru · PHP正在摆脱“if”条件并继续下一部分 11 年前 |
|
|
djj19 · Rainflow算法-Fortran到Matlab的转换 12 年前 |