【发布时间】:2013-11-04 10:54:55
【问题描述】:
我正在攻读软件工程硕士学位。从大学到大学,我从我的老师和导师那里听说过从未在编程语言中使用 GOTO 语句。根据
Software Engineering By D. Sundar
goto 语句的使用使程序变得非结构化,并使其非常 很难理解。
我还在 MICROSOFT 的书第一页上读到了同样的内容,该书从未在编程中使用 GOTO Statmement。
我的脑海中总是会出现一个问题,如果我们被指示永远不要使用GOTO Statement,那么why it is the part of many common programming languages?
【问题讨论】:
-
由于人择原理:如果任何语言中都没有
goto,您将不会看到任何不使用它的警告。 -
有时向后兼容,还有一些语言(如 java)根本没有“goto”语句。在某些(非常罕见的)情况下,goto 可能是合适的(您不必担心)
-
goto实际上在 C 中至关重要,如果您想编写具有多个出口的任意函数。在 C 中避免goto的唯一方法是使用非常小的函数和临时清理分支。如果您愿意,C++ 通过析构函数提供“自动gotos”,这就是为什么它允许您编写具有多个存在的任意代码而不会显得混乱。 -
历史原因。如果您今天从头开始发明一种语言,它就不会有
goto。但是在开发 C 的时候,还不是很清楚,C++ 有它是出于 C 兼容性的原因。