11

BASIC 编程语言中的 GOTO 和 GOSUB 语句有什么区别?

4

3 回答 3

22

GOTO只是跳转到另一行,GOSUB跟踪它的来源(大概是在堆栈上),所以当解释器遇到 a 时RETURN,它会回到最后一个GOSUB被调用的地方。

于 2012-10-10T01:33:57.670 回答
6

提供的其他答案很好地解释了如何使用 GOTO 和 GOSUB,但它们的处理方式存在重要差异。当一个 GOTO 被执行时,它从栈顶开始并遍历所有代码行,直到找到它应该 GOTO 的行。然后,如果您使用另一个 GOTO 语句返回,它会再次进入堆栈顶部并遍历所有内容,直到到达下一个位置。

GOSUB 做的事情几乎和 GOTO 一样,但它记得它在哪里。当您使用 RETURN 语句时,它只是跳回而无需先进入堆栈顶部并再次翻阅所有内容,因此速度要快得多。如果您希望您的代码快速运行,您应该将最常调用的子例程放在堆栈顶部,并使用 GOSUB/RETURN 而不是 GOTO。

于 2015-09-09T14:53:21.827 回答
1

当您调用 GOTO 时,程序将跳转到有问题的行并继续执行。

如果你使用 GOSUB,它会做同样的事情,但是在某些时候你可以编写一个 RETURN 语句并且代码将返回到 GOSUB 之后的行。

所以 GOTO 是去 X 而 GOSUB 是去 X 但记住你现在在哪里,这样你以后可以返回。

于 2012-10-10T01:35:08.620 回答