GoTo (Instrucción)

Se bifurca incondicionalmente a una línea especificada de un procedimiento.

Sintaxis

GoTo line  

Parte

line
Necesario. Cualquier etiqueta de línea.

Comentarios

La instrucción GoTo solo puede bifurcarse a las líneas del procedimiento en el que aparece. La línea debe tener una etiqueta de línea a la que GoTo pueda hacer referencia. Para obtener más información, consulte Procedimiento para: Aplicar etiquetas a las instrucciones.

Nota

Las instrucciones GoTo pueden dificultar la lectura y el mantenimiento del código. Siempre que sea posible, use una estructura de control como alternativa. Para más información, consulte Control Flow.

No se puede usar una instrucción GoTo para bifurcar desde fuera de una construcción For...Next, For Each...Next, SyncLock...End SyncLock, Try...Catch...Finally, With...End With o Using...End Using a una etiqueta del interior.

Bifurcación y construcciones Try

Dentro de una construcción Try...Catch...Finally, las siguientes reglas se aplican a la bifurcación con la instrucción GoTo.

Bloque o región Bifurcación al interior desde fuera Bifurcación al exterior desde dentro
Bloque Try Solo desde un bloque Catch de la misma construcción 1 Solo al exterior de toda la construcción
Bloque Catch Nunca se permite Solo al exterior de toda la construcción, o al bloque Try de la misma construcción 1
Bloque Finally Nunca se permite Nunca se permite

1 Si una construcción Try...Catch...Finally está anidada dentro de otra, un bloque Catch puede bifurcarse en el bloque Try en su propio nivel de anidamiento, pero no en ningún otro bloque Try. Una construcción Try...Catch...Finally anidada debe estar completamente contenida en un bloque Try o Catch de la construcción dentro de la cual está anidada.

En la ilustración siguiente se muestra una construcción Try anidada dentro de otra. Varias ramas entre los bloques de las dos construcciones se indican como válidas o no válidas.

Graphic diagram of branching in Try constructions

Ejemplo

En el ejemplo siguiente se usa la instrucción GoTo para bifurcar las etiquetas de línea de un procedimiento.

    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 también