Partilhar via


Instrução GoTo

Ramifica incondicionalmente para uma linha especificada em um procedimento.

GoTo line

Parte

  • line
    Obrigatório.Qualquer rótulo de linha.

Comentários

A instrução GoTo pode ramificacar somente a linhas no procedimento no qual ele aparece.A linha deve ter um rótulo de linha que GoTo pode referenciar.Para obter mais informações, consulte Como: instruções de rótulo (Visual Basic).

ObservaçãoObservação

Instruções GoTo podem dificultar a leitura e manutenção do código.Sempre que possível, use uma estrutura de controle em vez disso.Para obter mais informações, consulte Controle de fluxo em Visual Basic.

Você não pode usar uma instrução GoTo para ramificar de fora de uma construção For. .. Next,For Each... Next, SyncLock... End SyncLock,Try. .. Catch... Finally,With... End With,ou Using... End Using para um rótulo interno.

Ramificações e Construções Try

Em uma construção Try... Catch... Finally , as seguintes regras se aplicam a ramificação com a instrução GoTo.

Bloco ou região

Ramificação de fora para dentro

Ramificação de dentro para fora

Bloco Try

Somente de um bloco Catch da mesma construção 1.

Somente para fora da construção inteira

Bloco Catch

Nunca permitido

Somente para fora a construção inteira, ou para o bloco Try da mesma construção 1.

Bloco Finally

Nunca permitido

Nunca permitido

1 Se uma construção Try... Catch... Finally estiver aninhada em outra, um bloco Catch pode ramificar para o bloco Try no seu próprio nível de aninhamento, mas não para qualquer outro bloco Try.Uma construção Try... Catch... Finally aninhada deve estar contida completamente em um bloco Try ou Catch da construção dentro da qual está aninhada.

A ilustração a seguir mostra uma construção Try aninhada em outra.Várias ramificações entre os blocos das duas construções são indicadas como válidas ou inválidas.

Ramificações válidas e inválidas em construções Try

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

Exemplo

O exemplo a seguir utiliza a instrução GoTo para ramificar para rótulos de linha em um procedimento.

    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

Do...Instrução de loop (Visual Basic)

Para...Próxima instrução (Visual Basic)

Para cada...Próxima instrução (Visual Basic)

IF...Então...Instrução else (Visual Basic)

Selecione...Instrução case (Visual Basic)

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

While...Finalizar durante a instrução (Visual Basic)

Com...Terminam com a instrução (Visual Basic)