GoTo – příkaz

Větve nepodmíněně na určený řádek v proceduře.

Syntax

GoTo line  

Část

line
Povinná hodnota. Libovolný popisek čáry.

Poznámky

GoToPříkaz může být větví pouze na řádky v proceduře, ve které se vyskytuje. Řádek musí mít popisek řádku, na který GoTo může odkazovat. Další informace naleznete v tématu How to: Label Statements.

Poznámka

GoTo příkazy mohou ztížit čtení a údržbu kódu. Kdykoli je to možné, použijte místo toho strukturu ovládacího prvku. Další informace naleznete v tématu Control Flow.

Nemůžete použít GoTo příkaz k vytvoření větve mimo For ... Next , For Each ..., Next SyncLock End SyncLock Try ...,. Catch .. ... Finally , With ...,... End With , nebo Using ... End Using konstrukce na návěští uvnitř.

Větvení a vytváření try

V rámci Try ... Catch ...Finally konstrukce: následující pravidla platí pro větvení s GoTo příkazem.

Blok nebo oblast Větvení z vnějšku Vyskočení z vnitřku
Try Blokované Pouze z Catch bloku stejné konstrukce 1 Jenom mimo celou konstrukci
Catch Blokované Nikdy Nepovoleno Pouze vně celé konstrukce nebo do Try bloku stejné konstrukce 1
Finally Blokované Nikdy Nepovoleno Nikdy Nepovoleno

1 , pokud jedna Try ... Catch ...Finally konstrukce je vnořena do jiného, Catch blok může být větví do Try bloku 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 Try Catch bloku nebo konstrukce, v rámci které je vnořena.

Následující ilustrace znázorňuje jeden Try konstrukcí vnořený do jiného. Různé větve mezi bloky dvou konstrukcí jsou označeny jako platné nebo neplatné.

Grafický diagram větvení v konstrukcích try

Příklad

Následující příklad používá GoTo příkaz pro větvení popiskům čáry v proceduře.

    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é