跳转至内容

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

华夏公益教科书