问题标签 [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 投票
3 回答
123 浏览

find - 查找并检查是否为负写

我正在创建一个批处理文件,只是我想知道的一点:

我的(WINDOWS)批处理文件需要在文本文件中搜索“你好”。

如果它在那里,它应该使用 GOTO 命令到批处理文件中的其他位置。

如果它不存在,它应该在新行上写 'hello'。

你怎么能那样做?

我知道您可以使用 FIND 和 ERRORLEVEL,但我不知道如何使用。

0 投票
10 回答
2889 浏览

c++ - 使用 goto 会导致内存泄漏吗?

我有一个程序,我需要打破一大堆嵌套的 for 循环。到目前为止,大多数人一直告诉我这样做的方式是在我的代码中使用丑陋的 goto。

现在,如果我在我的循环中创建了一堆本地堆栈(我认为这就是它们的名称,如果不是,我的意思是不使用新命令的常规变量)变量,并且我的程序会触发触发 goto 的那个 if 语句,由于我的程序不正确地退出许多循环并且没有清理局部变量,我会遇到内存泄漏吗?

0 投票
8 回答
678 浏览

c++ - 你能在没有 goto 的情况下重写这个片段吗

伙计们,我有以下代码,它位于一个遍历树的大 while 循环中。这是我能得到这个例程的最快速度,但我必须使用 goto。我从根本上并不反对 goto,但如果我能避免它们,我愿意。(拜托,我不是要发动一场火焰战争。)

约束:

  1. current=current->child()很昂贵(它是 a ) ,shared_ptr所以我想不惜一切代价尽量减少对该操作的使用。
  2. 操作后current应该是它找到的最后一个孩子。
  3. cnt必须计算它遇到的每个孩子。
  4. cnt++ 将被其他一些操作(或几个操作)替换,并且应该只出现一次:)

编码:

编辑:对不起,最初忘记提及 cnt++ 应该只出现一次。这将是节点上的某种操作,因此应该只存在一次。我也试图避免进行另一个函数调用。

0 投票
3 回答
493 浏览

flash - Actionscript if / else 语法问题

以下哪项最能翻译英文陈述“如果下雨,我们就去看电影。否则我们就去公园。”

我的答案是“d”——对吗?

0 投票
11 回答
462 浏览

algorithm - 使用 goto 与运行时代码评估

最近在一个编程课上,我们被分配用任何语言编写一个程序,给定n ,它将为大小为n的数组p产生所有可能的混乱,使得p [i] != i for all i: 0 <= 我 < n。我们不得不使用迭代器,例如.yield

示例:n=3, [0, 1, 2] 不是紊乱,但 [2, 0, 1] 和 [1, 2, 0] 一样。

我想出了一个可行的伪代码解决方案,但问题是它需要电源循环(即n嵌套循环,其中n仅在运行时已知)。为此,我在一个字符串中的 Ruby 代码中生成了n 个嵌套循环,然后eval-ed 字符串。我的解决方案有效,但是我的教授认为使用几个gotos 会比动态代码生成更好的解决方案(至少更易于阅读)。

我的印象是这goto总是一个糟糕的选择。为什么动态生成代码的运行时评估可能是比 更糟糕的选择goto?生成的代码简洁明了,对于给定的问题似乎相当有效。代码生成所依赖的唯一用户输入是n,预先对其进行检查以确保它是一个整数值。这yield只是独特的精神错乱,应该如此。

我不是在为我的编程任务寻求解决方案,我只是想知道使用goto过度动态代码评估背后的原因,反之亦然。

编辑: 澄清一下,任务包括使用迭代器编写程序和使用递归编写另一个程序,因此迭代版本不一定是高效的。

0 投票
9 回答
1653 浏览

recursion - Erlang 的递归函数不只是 goto 吗?

只是为了让我直截了当。考虑一下这个 Erlang 代码示例:

不是 test() 调用,只是一个 goto 吗?

我问这个是因为我们在 C 中了解到,如果你进行函数调用,返回位置总是放在堆栈上。我无法想象这里的 Erlang 一定是这种情况,因为这会导致堆栈溢出。

我们有两种不同的调用函数的方式:goto 和 gosub。goto 只是将程序流引导到其他地方,gosub 记住了你从哪里来,这样你就可以返回。

鉴于这种思维方式,我可以更轻松地查看 Erlang 的递归,因为如果我只是阅读:test() 作为 goto,那么根本没有问题。

因此我的问题是: :Erlang 不只是使用 goto 而不是记住堆栈上的返回地址吗?

编辑:

只是为了澄清我的观点:

我知道 goto 可以在某些语言中使用,以便到处跳转。但是只是假设你也可以不做 someFunction() : goto someFunction() 在第一个例子中流程返回,在第二个例子中流程只是在 someFunction 中继续并且永远不会返回。

所以我们通过跳转到方法的起点来限制正常的 GOTO 行为。

如果你这样看,Erlang 递归函数调用看起来像一个 goto。

(我认为 goto 是一个函数调用,无法返回您来自的地方)。这正是 Erlang 示例中正在发生的事情。

0 投票
7 回答
6560 浏览

java - 将 goto 语句翻译成 if、switch、while、break 等

有没有办法将goto语句机械地翻译成ifswitchwhilebreakcontinue语句等,或者使用函数调用、对象等?

0 投票
7 回答
29764 浏览

windows - Windows 批处理文件 - 系统找不到指定的批处理标签

问题

我遇到了 Windows 批处理文件和标签的问题。我不断收到此错误:

系统找不到指定的批次标签

我试过的

  • 两台电脑;WindowsXP 和 2003 服务器。
  • 确保它被编码为 ASCII
  • 编辑了行继续字符的十六进制代码。尝试依次用 CR 、 LF 和 CRLF 替换所有内容。所有组合都给我同样的错误。
  • 尝试在标签前插入额外字符以使标签超过 512 个字符。

这是代码:

这是带有 CRLF (0d 0a) 的十六进制。

这是控制台的输出(当我删除 @echo off 时):

它实际上从未创建 7zip 文件,所以我想我可以假设它在这条线上崩溃了;

如果我从命令提示符单独运行该行,它可以正常工作并创建 dependencies.7z,所以我认为 7za.exe 不一定有问题。

我已经阅读了这个 stackoverflow 问题:stackoverflow.com/questions/232651/why-the-system-cannot-find-the-batch-label-specified-is-throw-even-if-label-ex

以及该帖子的链接;help.wugnet.com/windows/system-find-batch-label-ftopict615555.html

答案

所以,我找到了问题的家伙。

我正在使用一种我常用的技术,我只能将其描述为“代理”批处理文件。我有一个名为 c:\scripts 的文件夹,我在其中放了几个 bat 文件来定位常用的 exe。这可以避免我的 PATH 变量在我所有的命令行工具中变得绝对庞大。这样我只需将 c:\scripts 添加到我的 PATH 中,并在需要时创建一个代理批处理文件。

我在 c:\scripts 中有 7za.bat,只包含这个;

我把我的脚本改成了这个;

而不是这个;

它完美无缺。

这个故事的主旨...

避免从批处理文件中调用其他批处理文件。如果这样做,则需要在它们前面加上“ call ”。

0 投票
1 回答
2647 浏览

flash - 如何使用一个按钮加载和外部 swf 和 gotoAndPlay()

我进行了一次互动式游览,可以在这里看到。

主要的 swf 是顶部的导航。我将 4 个外部 swf 加载到主文件中(关于、出租、平面图、邻居)。

我需要一个按钮Floorplan.swf来加载Rental.swf gotoAndStop("CAFE")- 内的一个框架Rental.swf

这是我现在正在使用的代码:

该代码将加载 swf,但它不会gotoAndStop。我重新安排并重写了 - 没有任何效果。当我在代码上留下痕迹时,似乎onLoadComplete甚至没有被调用。我很茫然。

如果需要,我可以发送文件。

0 投票
5 回答
1787 浏览

c# - 在 C# 中实现状态机的最佳(当性能很重要)方法是什么?

我想出了以下选项:

使用 goto 语句:

使用 switch 语句:

一起使用 goto 和 switch:

我更喜欢使用 goto 语句的第一个选项,因为它更快且更简洁。但我不确定这是否是最佳选择。也许性能明智,但谈到可读性我不知道。这就是我问这个问题的原因。你更喜欢哪个选项,为什么?