问题标签 [goto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
14220 浏览

sql - 使用变量标签的 SQL GOTO 语句

我希望能够做这样的事情:

当然,sql server 给了我一个不正确的语法错误......所以我想知道我是否仍然可以用稍微不同的语法来做到这一点?

0 投票
5 回答
2450 浏览

coding-style - GoTo 标签的命名约定

您如何命名您的 GoTo 标签?我很少经常使用,所以我很难找到好名字。

请避免经典的“goto is evil and eat your code alive Discussion”

0 投票
9 回答
3085 浏览

c - 带有“goto”的流控制宏

是的,两个讨厌的构造结合在一起。它是否像听起来那么糟糕,或者它可以被视为控制 goto 使用并提供合理清理策略的好方法?

在工作中,我们讨论了是否在我们的编码标准中允许 goto。一般来说,没有人愿意允许免费使用 goto,但有些人对使用它进行清理跳转持积极态度。如这段代码:

这种使用的最大好处是您不必最终得到以下代码:

尤其是在具有许多分配的类似构造函数的函数中,这有时会变得非常糟糕,尤其是当有人必须在中间插入一些东西时。

因此,为了能够使用 goto,但仍然清楚地将其与自由使用隔离开来,创建了一组流控制宏来处理任务。看起来像这样(简化):

我们可以这样使用它:

它看起来不错,并且有很多好处,但是,在将其推广到开发中之前,我们应该考虑什么缺点吗?毕竟它是非常流量控制和 goto:ish。两人都气馁。在这种情况下阻止他们的论据是什么?

谢谢。

0 投票
16 回答
17750 浏览

php - PHP 和 PHP 5.3 中要添加的 goto 语句

“goto”语句直接来自 ASM 或任何其他汇编语言。

这是一个链接:http ://be2.php.net/manual/en/control-structures.goto.php

我想知道:这可以使我的代码更有条理吗?我怎样才能在更大的项目中实现这一点,而不会搞砸。由于 goto 将允许您来回跳转,因此如果您以错误的方式使用它,意外分配和无限循环正在等待发生。

有人可以给我一个很好地使用它的例子吗?

编辑:好吧,我已经看到了一些回复,显然对于“goto”语句的使用存在广泛的共识,而且它很糟糕。

所以我仍然想知道:为什么 PHP 会费心将它添加到语言中。如果他们没有看到其中的东西,他们就不会这样做……那为什么呢?

另外:StackOverflow 上关于“goto”的一般讨论

EDIT2:看到这个问题导致很多不好的事情对 goto 语句感到难过,我去问了我的父亲。他今年 52 岁,是一名工业工程师。
他告诉我几次,他在他的日子里做了很多编程,主要是在 FORTRAN 和 COBOL 中。现在他做IT服务、服务器和网络管理等。

不管怎样,他说了一些“回到我的时代……”
讨论了一下之后,他回到了 goto 语句,说即使回到他学生时代,他们就已经知道这不是一个聪明的使用它的想法,但他们当时并没有更好的选择。Try/catch 还需要几年的时间,而且几乎没有消除错误处理。
那么你做了什么来检查你的程序?在末尾添加几行,允许您打印输出以及您需要在代码中检查的所有内容,然后放置以下行:“goto printing;”或类似的内容,以开始打印数据。

并且以这种方式,您逐渐调试了您的代码。

他同意在现代编程世界中使用 goto 是毫无用处的。他认为唯一合理的用途是“紧急中断”,用于极端调试和意外情况。有点像goto fatal_error;,并让代码的“fatal_error”部分做一些事情来向您展示深入的结果。
但仅限于创建某些东西的过程中。成品不应该有 goto 语句。

后期编辑:关于 PHP5.3/PHP6 中“goto”的另一个讨论

0 投票
5 回答
293 浏览

c# - C#中的代码好奇心

我正在查看YUI Compressor并在 ECMA.NET 项目中遇到了这段代码(如果您有兴趣,请继续阅读文件)。

我不知道 L0: 和 EL0: 在这里做什么,以前从未见过。这个词对谷歌来说似乎也太初级了。

有人知道这是什么一回事吗?

0 投票
4 回答
315 浏览

refactoring - 猜猜这个 goto 标签

我正要重构以下 VB6 代码(由其他人编写)。

您认为原作者对标签的意图是eh什么?

可能只是“呃,发生了什么事?”......

我想让它可读,而不必像现在一样思考它......

0 投票
16 回答
30251 浏览

c - 在 C 中有效地使用 goto 进行错误管理?

这个问题实际上是不久前在programming.reddit.com上有趣讨论的结果。它基本上归结为以下代码:

这里的使用goto似乎是最好的方法,导致所有可能性中最干净和最有效的代码,或者至少在我看来是这样。在Code Complete中引用 Steve McConnell 的话:

goto 在分配资源、对这些资源执行操作、然后释放资源的例程中很有用。使用 goto,您可以清理代码的一部分。goto 减少了您忘记在检测到错误的每个地方释放资源的可能性。

对这种方法的另一种支持来自本节中的Linux 设备驱动程序一书。

你怎么看?这种情况goto在 C 中是否有效?您是否更喜欢其他方法,这些方法会产生更复杂和/或效率更低的代码,但要避免goto

0 投票
10 回答
197411 浏览

vb.net - VB.NET Switch 语句 GoTo 案例

我正在 VB.NET 中编写一些使用 switch 语句的代码,但在其中一种情况下它需要跳转到另一个块。在 C# 中,它看起来像这样:

但是,我不知道如何将其转换为 VB.NET。我试过这个:

但是当我这样做时,我得到一个编译器错误:“预期标识符”。“案例”下方有一条波浪线。有任何想法吗?

另外,在这种情况下使用 GoTo 语句是错误的吗?似乎任何其他方式我都必须重新编写它。


我已将代码更改为如下:

0 投票
7 回答
31098 浏览

batch-file - 只做如果天...批处理文件

你好,我有一个批处理文件,如下所示:

现在我知道第一行行不通。

我真正想要发生的事情:

它会自动检查它是哪一天。如果是星期一到星期五,则必须转到“是”,否则(星期六/星期日)就必须转到“否”。

这该怎么做?

0 投票
11 回答
11217 浏览

c++ - 如何将 goto 标签存储在数组中,然后跳转到它们?

我想声明一个“跳转标签”数组。

然后我想跳转到这个数组中的一个“跳转标签”。

但我不知道如何做到这一点。

它应该类似于以下代码:

有谁知道如何执行此操作?