GOSUB
GOSUB Label
Since 3.1
跳转到函数中用行标号Label声明的位置。
然后如果遇到
RETURN语句,程序回到GOSUB语句后紧接着的代码处运行。
可以嵌套执行GOSUB调用,直至耗尽内存。
Computed GOSUB
GOSUB Expression
Since 3.19
自Gambas 3.19以来,
GOSUB
(或
GOTO
) 可以接受任何表达式作为参数。
此表达式必须返回一个整数,表示要跳转的分支的标签。
这个整数是通过使用标签作为表达式获得的。在这种情况下,标签被转换为表示它的整数索引(仅在定义标签的函数中)。
只有在任何控制结构之外的标签才能成为计算GOTO或GOSUB的目标。
Example
Dim JumpArray As Integer[]
JumpArray = [LABEL_1, LABEL_2, LABEL_3]
GoSub JumpArray[Rand(1, 3)]
Return
LABEL_1:
Print "One !"
Return
LABEL_2:
Print "Two !"
Return
LABEL_3:
Print "Three !"
Return
See also