Istruzione GoTo
Rami in modo condizionale a una riga specificata in una routine.
Sintassi
GoTo line
Parte
line
Obbligatorio. Qualsiasi etichetta di riga.
Commenti
L'istruzione GoTo
può diramare solo le righe nella procedura in cui viene visualizzata. La riga deve avere un'etichetta di riga che GoTo
può fare riferimento. Per altre informazioni, vedere Procedura: Istruzioni etichetta.
Nota
GoTo
le istruzioni possono rendere difficile leggere e gestire il codice. Se possibile, usare invece una struttura di controllo. Per altre informazioni, vedere Flusso di controllo.
Non è possibile usare un'istruzione GoTo
per ramo dall'esterno di un For
..., ...Next
, ...End SyncLock
Next
, ...Catch
For Each
SyncLock
Try
...Finally
, With
...o Using
...End With
End Using
costruzione di un'etichetta all'interno.
Diramazione e tentativi di costruzione
All'interno di un Try
...Catch
...Finally
costruzione, le regole seguenti si applicano al ramo con l'istruzione GoTo
.
Blocca o area | Branching in dall'esterno | Diramazione dall'interno |
---|---|---|
Try Blocco |
Solo da un Catch blocco della stessa costruzione 1 |
Solo all'esterno dell'intera costruzione |
Catch Blocco |
Mai consentito | Solo all'esterno dell'intera costruzione, o al Try blocco della stessa costruzione 1 |
Finally Blocco |
Mai consentito | Mai consentito |
1 Se ...Try
Catch
...Finally
la costruzione viene annidata all'interno di un altro, un Catch
blocco può ramo nel Try
blocco a livello di annidamento, ma non in alcun altro Try
blocco. Un annidato Try
...Catch
...Finally
la costruzione deve essere contenuta completamente in un Try
blocco o Catch
di costruzione all'interno della quale è annidato.
La figura seguente mostra una Try
costruzione annidata all'interno di un'altra. Vari rami tra i blocchi delle due costruzioni sono indicati come validi o non validi.
Esempio
Nell'esempio seguente viene usata l'istruzione GoTo
per ramo per le etichette di riga in una routine.
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