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