GoTo — Instrukcja

Rozgałęzienia bezwarunkowo do określonej linii w procedurze.

Składnia

GoTo line  

Element

line
Wymagany. Dowolna etykieta wiersza.

Uwagi

Instrukcja GoTo może rozgałęzić tylko do wierszy w procedurze, w której się pojawia. Wiersz musi mieć etykietę wiersza, która GoTo może się odwoływać. Aby uzyskać więcej informacji, zobacz Instrukcje: Instrukcje etykiet.

Uwaga

GoTo instrukcje mogą utrudniać odczytywanie i konserwację kodu. Jeśli to możliwe, należy zamiast tego użyć struktury sterującej. Aby uzyskać więcej informacji, zobacz Przepływ sterowania.

Nie można użyć instrukcji , aby rozgałęzić GoTo się spoza ...NextFor, ...Next, For EachSyncLock..., ...End SyncLockCatchTry...Finally, With...End With, lub Using...End Using konstrukcja do etykiety wewnątrz.

Rozgałęzianie i testowanie konstrukcji

W ...TryCatch...Finally konstrukcja, następujące zasady mają zastosowanie do rozgałęziania za pomocą instrukcji GoTo .

Blokuj lub region Rozgałęzianie z zewnątrz Rozgałęzianie od wewnątrz
Blok Try Tylko z Catch bloku tej samej konstrukcji 1 Tylko na zewnątrz całej konstrukcji
Blok Catch Nigdy nie jest dozwolone Tylko na zewnątrz całej konstrukcji lub Try do bloku tej samej konstrukcji 1
Blok Finally Nigdy nie jest dozwolone Nigdy nie jest dozwolone

1 Jeśli jeden Try...Catch...Finally konstrukcja jest zagnieżdżona w innym, blok może rozgałęzić Catch się w Try bloku na własnym poziomie zagnieżdżania, ale nie w żadnym innym Try bloku. Zagnieżdżone Try...Catch...Finally konstrukcja musi być całkowicie zawarta w Try bloku lub Catch konstrukcji, w której jest zagnieżdżona.

Poniższa ilustracja przedstawia jedną Try konstrukcję zagnieżdżona w innym. Różne gałęzie między blokami dwóch konstrukcji są wskazywane jako prawidłowe lub nieprawidłowe.

Graphic diagram of branching in Try constructions

Przykład

W poniższym przykładzie użyto instrukcji GoTo , aby rozgałęzić etykiety wierszy w procedurze.

    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

Zobacz też