ON...GOSUB
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOngosub
- 最后更新: 2020-08-13
根据表达式调用一个标签。
语法
On expression Gosub label1[, ...]描述
根据 expression 的值跳转到不同的标签。表达式值为 1 时跳转到第一个标签,值为 2 时跳转到第二个,依此类推。如果 expression 的值为零(0)或大于列表中的项目数,则执行继续到 On...Gosub 后面的下一条语句。
此语句的行为与 Gosub 完全相同,执行可以使用 Return 返回到 On...Gosub 后面的语句。
建议使用结构化的 Select Case 条件语句代替 On...Gosub。
示例
start GeSHi
vb
'' Compile with -lang qb
'$lang: "qb"
choice = 3
On choice GoSub labela, labelb, labelc
Print "Good bye."
End
labela:
Print "choice a"
Return
labelb:
Print "choice b"
Return
labelc:
Print "choice c"
Returnend GeSHi
方言差异
- 仅在 -lang qb 和 -lang fblite 方言中可用。
- 在 -lang fblite 方言中,
On Gosub支持默认是禁用的,除非使用了Option Gosub语句。
与 QB 的差异
- 如果
expression为负数或大于 255,FreeBASIC 不会生成运行时错误。
参见
Select CaseOn...GotoGosubReturn (from Gosub)Option GosubLabels
返回 目录