Skip to content

On...GoTo, On...GoSub

根据表达式的值,分支到几个指定行之一。

语法:

  • On expression GoTo destinationlist

  • On expression GoSub destinationlist

expression
计算结果为0到255之间(含)的整数的任意数值表达式。如果expression不是整数,则在计算前进行四舍五入。
destinationlist
以逗号分隔的行号或行标签列表。

expression的值决定分支到destinationlist中的哪一行。如果expression的值小于1或大于列表中的项数,则产生以下结果之一:

如果 expression
等于0控制落到On...GoSubOn...GoTo之后的语句。
大于列表中的项数控制落到On...GoSubOn...GoTo之后的语句。
为负数产生错误。
大于255产生错误。

行号和行标签可以在同一列表中混合使用。On...GoSubOn...GoTo可以使用任意数量的行标签和行号。但是,当标签或编号多于一行所能容纳时,必须使用行继续符将逻辑行延续到下一个物理行。

TIP

Select Case提供了一种更结构化、更灵活的方式来执行多路分支。

示例

本示例使用On...GoSubOn...GoTo语句分别分支到子例行程序和行标签。

vb
Sub OnGosubGotoDemo()
    Dim Number, MyString
    Number = 2 ' Initialize variable.
    ' Branch to Sub2.
    On Number GoSub Sub1, Sub2 ' Execution resumes here after On...GoSub.
    On Number GoTo Line1, Line2 ' Branch to Line2.
    ' Execution does not resume here after On...GoTo.
    Exit Sub
Sub1:
    MyString = "In Sub1" : Return
Sub2:
    MyString = "In Sub2" : Return
Line1:
    MyString = "In Line1"
Line2:
    MyString = "In Line2"
End Sub

另请参阅

twinBASIC及其LOGO版权为作者"韦恩"所有