On...Gosub
 
根据表达式调用标签

语法

On expression GoSub label1 [, ...]

说明

根据expression 的值分支到不同的标签。表达式值为1将分支到第一个标签,值为2到第二个等。如果expression 的值为零(0)或大于列表中的项目数,则在On...Gosub之后的下一个语句上继续执行。

此语句的行为与GoSub完全相同,执行可能会返回到使用ReturnOn...Gosub之后的语句。

建议使用结构化Select Case条件语句,而不是On...Gosub.

例子

''用-lang qb编译

'$ lang:“qb”

choice = 3
On choice GoSub labela, labelb, labelc
Print "再见。"
End

labela:
Print "选择一个"
Return

labelb:
Print "选择b"
Return

labelc:
Print "选择c"
Return


方言差异

与QB差别

  • 如果expression 为负数或大于255,则FreeBASIC不会生成运行时错误。

参考