GOSUB: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 59: | Riga 59: | ||
Dim j As Integer | Dim j As Integer | ||
GoSub | GoSub etichetta1 | ||
Print "Il GOSUB farà saltare questa riga, ma poi il Return al suo primo passaggio farà tornare il programma proprio qui." | Print "Il GOSUB farà saltare questa riga, ma poi il Return al suo primo passaggio farà tornare il programma proprio qui." | ||
etichetta1: | |||
Print "1° controllo" | Print "1° controllo" | ||
Versione delle 09:40, 5 mar 2012
L'istruzione GOSUB consente di saltare all'etichetta dichiarata all'interno della medesima routine. Se poi il programma incontra l'istruzione RETURN, esso torna sopra e precisamente alla linea di codice successiva all'istruzione GOSUB.
GOSUB etichetta
......
etichetta: ......
Return
Esempio:
' Gambas class file
Public Sub Button1_Click()
Dim i As Integer
Dim j As Integer
For i = 1 To 3
GoSub etichetta1 ' Il programma salta alla riga dove è presente l'etichetta "etichetta1"
Next
Return ' Il programma esce fuori dalla routine, poiché questo è un normale Return non connesso al Gosub
etichetta1:
For j = 1 To 3
Print "Prova";; i;; j
Next
Return ' Questo Return è connesso e dipendente dal Gosub. Pertanto il programma torna su: alla riga successiva al Gosub
End
In console avremo:
Prova 1 1
Prova 1 2
Prova 1 3
Prova 2 1
Prova 2 2
Prova 2 3
Prova 3 1
Prova 3 2
Prova 3 3
Bisogna tenere conto che l'istruzione Return, una volta "utilizzata", e qualora non immediatamente chiamata di nuovo dal proprio comando GOSUB, si "trasforma" in un normale Return, determinando, così, l'uscita del processo dalla routine.
Esempio:
Public Sub Button1_Click() Dim i As Integer Dim j As Integer GoSub etichetta1 Print "Il GOSUB farà saltare questa riga, ma poi il Return al suo primo passaggio farà tornare il programma proprio qui." etichetta1: Print "1° controllo" Return Print "2° controllo" ' Questa riga sarà del tutto saltata End
In console avremo infatti questo risultato:
1° controllo
Il GOSUB farà saltare questa riga, ma poi il Return al suo primo passaggio farà tornare il programma proprio qui.
1° controllo