Share via


GoTo 陳述式

更新:2007 年 11 月

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

GoTo line

參數

  • line
    必要項。任何程式行標籤 (Label)。

備註

GoTo 陳述式只能將程式分支到所在程序內的程式行。該程式行必須具有程式行標籤,以供 GoTo 參考。如需詳細資訊,請參閱 HOW TO:標記陳述式

注意事項:

GoTo 陳述式會使他人難以閱讀及維護您的程式碼。如果可能,請使用控制結構。如需詳細資訊,請參閱 Visual Basic 中的控制流程

您無法使用 GoTo 陳述式,將程式從 For...Next、For Each...Next、SyncLock...End SyncLock、Try...Catch...Finally、With...End With 或 Using...End Using 語法結構以外的位置分支到語法結構內的標籤。

分支和 Try 語法結構

在 Try...Catch...Finally 語法結構內,使用 GoTo 陳述式進行分支適用於下列規則。

區塊或區域

由外往內分支

由內往外分支

Try 區塊

只能從同一語法結構的 Catch 區塊分支進來 1

只能分支到整個語法結構以外

Catch 區塊

絕不允許

只能分支到整個語法結構以外,或是分支到同一語法結構的 Try 區塊 1

Finally 區塊

絕不允許

絕不允許

1 若某個 Try...Catch...Finally 語法結構內嵌於其他的語法結構內,則 Catch 區塊可以分支到本身巢狀層次的 Try 區塊,但不能分支到其他的 Try 區塊。內層的巢狀 Try...Catch...Finally 語法結構,必須完全包含在外層語法結構的 Try 或 Catch 區塊內。

下圖會顯示巢狀於其他語法結構內的 Try 語法結構。這兩個語法結構區塊之間的各種分支會標示為有效或無效。

Try 語法結構的有效和無效分支

Try 語法結構中的分支示意圖

範例

下列範例會使用 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

請參閱

參考

Do...Loop 陳述式 (Visual Basic)

For...Next 陳述式 (Visual Basic)

For Each...Next 陳述式 (Visual Basic)

If...Then...Else 陳述式 (Visual Basic)

Select...Case 陳述式 (Visual Basic)

Try...Catch...Finally 陳述式 (Visual Basic)

While...End While 陳述式 (Visual Basic)

With...End With 陳述式 (Visual Basic)