Instrução GoTo

Branches unconditionally to a specified line in a procedure.

GoTo line

Part

  • line
    Required. Any line label.

Comentários

The GoTo statement can branch only to lines in the procedure in which it appears. The line must have a line label that GoTo can refer to. For more information, see Como: Rotular instruções (Visual Basic).

ObservaçãoObservação

GoTo statements can make code difficult to read and maintain. Whenever possible, use a control structure instead. For more information, see Fluxo de controle no Visual Basic.

You cannot use a GoTo statement to branch from outside a For...Next, For Each...Next, SyncLock...End SyncLock, Try...Catch...Finally, With...End With, or Using...End Using construction to a label inside.

Branching and Try Constructions

Within a Try...Catch...Finally construction, the following rules apply to branching with the GoTo statement.

Block or region

Branching in from outside

Branching out from inside

Try block

Only from a Catch block of the same construction 1

Only to outside the whole construction

Catch block

Never allowed

Only to outside the whole construction, or to the Try block of the same construction 1

Finally block

Never allowed

Never allowed

1 If one Try...Catch...Finally construction is nested within another, a Catch block can branch into the Try block at its own nesting level, but not into any other Try block. A nested Try...Catch...Finally construction must be contained completely in a Try or Catch block of the construction within which it is nested.

The following illustration shows one Try construction nested within another. Various branches among the blocks of the two constructions are indicated as valid or invalid.

Valid and invalid branches in Try constructions

Diagrama gráfico de ramificações em construções Try

Exemplo

The following example uses the GoTo statement to branch to line labels in a procedure.

    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

Consulte também

Referência

Declaração Do...Loop (Visual Basic)

Instrução For...Next (Visual Basic)

Instrução For Each...Next (Visual Basic)

Declaração If...Then... (Visual Basic)

Declaração Select...Case (Visual Basic)

Instrução Try...Catch...Finally (Visual Basic)

Instrução While...End While (Visual Basic)

Declaração With...End With (Visual Basic)