分享方式:


GoTo 陳述式

無條件分支到程序中的指定行。

語法

GoTo line  

部分

line
必要。 任何行標籤。

備註

GoTo 陳述式只能分支至其出現在程序中的行。 此行必須有 GoTo 可參考的行標籤。 如需詳細資訊,請參閱如何:標記陳述式

注意

GoTo 陳述式可能會讓程式碼難以讀取和維護。 盡可能改用控制項結構。 如需詳細資訊,請參閱 控制流程

您無法使用 GoTo 陳述式從 For...NextFor Each...NextSyncLock...End SyncLockTry...Catch...FinallyWith...End WithUsing...End Using 建構外部分支至內部標籤。

分支和嘗試建構

Try...Catch...Finally 建構中,下列規則適用於使用 GoTo 陳述式進行分支。

區塊或區域 從外部分支 從內部分支
Try 區塊 只有來自相同建構的 Catch 區塊 1 只有到整個建構外部
Catch 區塊 永遠不允許 只有到整個建構外部,或相同建構的 Try 區塊 1
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

另請參閱