Futurebasic/语言/参考/gosub
外观
GOSUB {lineNumber|"statementLabel"
执行位于指定行号或语句标签处的子程序。子程序应包含 RETURN
语句;RETURN
使执行继续在 GOSUB
语句后的语句处进行。
GOSUB
是一种过时的执行例程的方法;通常,将例程封装在 LOCAL FN
函数中是一个更好的主意。但是,使用 GOSUB
有一些可能的优势
- 使用
GOSUB
调用的例程执行速度可能略快于本地函数。 - 可以在本地函数内创建一个“私有”子程序,并在该本地函数内使用
GOSUB
调用该子程序。子程序中使用的变量将具有与本地函数相同的范围。这可能是执行本地函数内某些重复任务的良好方法。
示例:子程序可以以“嵌套”的方式执行;即,一个子程序可以调用另一个子程序。FB 会跟踪每个 RETURN
语句应该“返回”到哪里。
PRINT "第一行。" GOSUB "sub1" PRINT "第五行。" END
"sub1" PRINT "第二行。" GOSUB "sub2" PRINT "第四行。" RETURN
"sub2" PRINT "第三行。" RETURN
程序输出:第一行。第二行。第三行。第四行。第五行。
注意:本地函数内的 GOSUB
语句可以跳转到该函数外部的子程序;“main”中的 GOSUB
语句也可以跳转到本地函数内的子程序。但是,这种编程方式不建议使用,因为由此产生的变量范围切换会导致意外结果。
RETURN FN; LOCAL FN