Поделиться через


Оператор GoTo

Ветви безусловно к указанной строке в процедуре.

Синтаксис

GoTo line  

Часть

line
Обязательный. Любая метка строки.

Замечания

Оператор GoTo может ветвиться только к строкам в процедуре, в которой она отображается. Строка должна иметь метку строки, на которую GoTo можно ссылаться. Дополнительные сведения см. в разделе "Практическое руководство. Инструкции меток".

Примечание.

GoTo операторы могут затруднить чтение и обслуживание кода. По возможности используйте вместо этого структуру управления. Дополнительные сведения см. в разделе Поток управления.

Оператор нельзя использовать GoTo для ветвления вне For...Next, ...Next, For Each..., ...End SyncLockCatchSyncLockTry..., With...End WithFinally, или Using...End Using строительство в метку внутри.

Ветвление и попробовать конструкции

TryВнутри ...Catch...Finally построение, следующие правила применяются к ветвлениям с помощью инструкцииGoTo.

Блокировка или регион Ветвление извне Ветвление изнутри
Блок Try Только из Catch блока того же строительства 1 Только вне всей конструкции
Блок Catch Никогда не разрешено Только за пределами всей конструкции, или к Try блоку одного и того же строительства 1
Блок Finally Никогда не разрешено Никогда не разрешено

1 Если один Try...Catch...Finally конструкция вложена в другой блок, Catch блок может ветвь в Try блок на своем уровне вложения, но не в любой другой Try блок. Вложенный Try...Catch...Finally конструкция должна быть полностью размещена в TryCatch блоке конструкции, в которой она вложена.

На следующем рисунке показана одна Try конструкция, вложенная в другую. Различные ветви между блоками двух конструкций указываются как допустимые или недопустимые.

Graphic diagram of branching in Try constructions

Пример

В следующем примере оператор используется для 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

См. также