GoTo 语句

无条件地分支到过程中的指定行。

语法

GoTo line  

组成部分

line
必需。 任何行标签。

注解

GoTo 语句只能分支到其出现的过程中的行。 该行必须具有 GoTo 可引用的行标签。 有关详细信息,请参阅如何:为语句添加标签

注意

GoTo 语句可能会使代码难以读取和维护。 请尽量改用控件结构。 有关详细信息,请参阅 Control Flow

不能使用 GoTo 语句从 For...NextFor Each...NextSyncLock...End SyncLockTry...Catch...FinallyWith...End WithUsing...End Using 构造外部分支到内部标签。

分支和尝试构造

Try...Catch...Finally 构造中,以下规则适用于具有 GoTo 语句的分支。

块或区域 从外部进行分支 从内部进行分支
Try 仅来自相同构造的 Catch1 仅分支到整个构造外部
Catch 从不允许 仅分支到整个结构外部或者同一结构的 Try1
Finally 从不允许 从不允许

1 如果一个 Try...Catch...Finally 结构嵌套在另一个结构中,则 Catch 块可以在其自己的嵌套级别分支到 Try 块中,但不能分支到任何其他 Try 块中。 嵌套的 Try...Catch...Finally 构造必须完全包含在它所嵌套的构造的 TryCatch 块中。

下图显示了嵌套在另一个构造中的一个 Try 构造。 这两种构造的块之间的各个分支均表示为有效或无效。

Graphic diagram of branching in Try constructions

示例

以下示例使用 GoTo 语句在过程中分支到行标签。

    Sub GoToStatementDemo()
        Dim number As Integer = 1
        Dim sampleString As String
        ' Evaluate number and branch to appropriate label.
        If number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
        sampleString = "Number equals 1"
        GoTo LastLine
Line2:
        ' The following statement never gets executed because number = 1.
        sampleString = "Number equals 2"
LastLine:
        ' Write "Number equals 1" in the Debug window.
        Debug.WriteLine(sampleString)
    End Sub

另请参阅