GoTo – příkaz

Větve bezpodmínečně na zadaný řádek v postupu.

Syntaxe

GoTo line  

Část

line
Povinný: Libovolný popisek řádku.

Poznámky

Příkaz GoTo může větvet pouze na řádky v postupu, ve kterém se zobrazí. Řádek musí mít popisek řádku, na který GoTo může odkazovat. Další informace naleznete v tématu Postupy: Příkazy popisků.

Poznámka:

GoTo příkazy můžou ztěžovat čtení a údržbu kódu. Kdykoli je to možné, použijte místo toho řídicí strukturu. Další informace najdete v tématu Tok řízení.

Příkaz nelze použít GoTo k větvení mimo ...ForNext, For Each...Next, SyncLock..., ...End SyncLock, ... TryCatch...Finally, With...End With, nebo Using...End Using konstrukce na popisek uvnitř.

Větvení a vyzkoušení konstrukcí

TryUvnitř ...Catch...Finally pro větvení s příkazem GoTo platí následující pravidla.

Blokovat nebo oblast Větvení odjinud Větvení uvnitř
Blok Try Pouze z Catch bloku stejné konstrukce 1 Pouze mimo celou konstrukci
Blok Catch Nikdy nepovoleno Pouze mimo celou konstrukci, nebo do Try bloku stejné konstrukce 1
Blok Finally Nikdy nepovoleno Nikdy nepovoleno

1 Pokud jeden Try...Catch...Finally konstrukce je vnořena do jiného bloku, Catch může do bloku větvet Try na vlastní úrovni vnoření, ale ne do žádného jiného Try bloku. Vnořený Try...Catch...Finally konstrukce musí být zcela obsažena v TryCatch nebo bloku konstrukce, ve které je vnořena.

Následující obrázek znázorňuje jednu Try konstrukci vnořenou do jiné. Různé větve mezi bloky dvou konstrukcí jsou označeny jako platné nebo neplatné.

Graphic diagram of branching in Try constructions

Příklad

Následující příklad používá příkaz GoTo k větvení na popisky řádků v rámci procedury.

    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

Viz také