GoTo 陳述式
無條件分支到程序中的指定行。
語法
GoTo line
部分
line
必要。 任何行標籤。
備註
GoTo
陳述式只能分支至其出現在程序中的行。 此行必須有 GoTo
可參考的行標籤。 如需詳細資訊,請參閱如何:標記陳述式。
注意
GoTo
陳述式可能會讓程式碼難以讀取和維護。 盡可能改用控制項結構。 如需詳細資訊,請參閱 控制流程。
您無法使用 GoTo
陳述式從 For
...Next
、For Each
...Next
、SyncLock
...End SyncLock
、Try
...Catch
...Finally
、With
...End With
或 Using
...End Using
建構外部分支至內部標籤。
分支和嘗試建構
在 Try
...Catch
...Finally
建構中,下列規則適用於使用 GoTo
陳述式進行分支。
區塊或區域 | 從外部分支 | 從內部分支 |
---|---|---|
Try 區塊 |
只有來自相同建構的 Catch 區塊 1 |
只有到整個建構外部 |
Catch 區塊 |
永遠不允許 | 只有到整個建構外部,或相同建構的 Try 區塊 1 |
Finally 區塊 |
永遠不允許 | 永遠不允許 |
1 如果一個 Try
...Catch
...Finally
建構巢狀在另一個建構中,Catch
區塊可以分支至 Try
區塊本身的巢狀層級,但不能分支至任何其他 Try
區塊。 巢狀 Try
...Catch
...Finally
建構必須完全包含在其巢狀建構內的 Try
或 Catch
區塊中。
下圖顯示一個 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