Col*_*lin 18
GOTO只是跳到另一条线,GOSUB跟踪它的来源(大概是在堆栈上),所以当解释器遇到a时RETURN,它会回到最后一个地方GOSUB被调用.
提供的其他答案很好地解释了如何使用 GOTO 和 GOSUB,但它们的处理方式存在重要差异。当执行 GOTO 时,它从堆栈顶部开始并翻转所有代码行,直到找到它应该 GOTO 的行。然后,如果您使用另一个 GOTO 语句返回,它将再次进入堆栈顶部并翻转所有内容,直到到达下一个位置。
GOSUB 和 GOTO 做的事情几乎一样,但它记得它在哪里。当您使用 RETURN 语句时,它只是跳回,而无需先进入堆栈顶部并再次翻阅所有内容,因此速度要快得多。如果您希望您的代码快速运行,您应该将最常调用的子程序放在堆栈顶部并使用 GOSUB/RETURN 而不是 GOTO。