BASIC GOTO和GOSUB语句有什么区别

Mor*_*awu 9 basic

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

Col*_*lin 18

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

  • BASIC正在推动物流,银行和许多其他行业的许多高性能业务系统.例如,所有MultiValue数据库驱动的业务系统都是用BASIC编写的. (5认同)
  • @Collin确实,非常通用."MultiValue数据库"确实是产品.市场上有一些值得一提的东西,如Rocket Software的UniVerse和UniData,Tiger Logic的D3和Northgate Information Solutions的Reality.它们都是DBMS和"业务"引擎,它们与BASIC一起作为业务逻辑的首选内置语言. (4认同)
  • 什么?VB.NET 是一种完全不同的语言。当然,它被称为 Basic,但它不是“BASIC” (2认同)

Gre*_*phy 6

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

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