Differenze tra le versioni di "GOSUB"
Riga 14: | Riga 14: | ||
Esempio: | Esempio: | ||
− | |||
− | |||
− | |||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
Riga 22: | Riga 19: | ||
Dim j As Integer | Dim j As Integer | ||
− | + | For i = 1 To 3 | |
− | + | <Font Color= #B22222>GoSub</font> <FONT color=darkgreen>etichetta1</font> <Font Color=gray>' ''Il programma salta alla riga dove è presente l'etichetta "etichetta1"''</font> | |
− | + | Next | |
− | Return | + | Return <Font Color=gray>' ''Il programma esce fuori dalla routine, poiché questo è un normale Return non connesso al Gosub''</font> |
− | + | <FONT color=darkgreen>etichetta1:</font> | |
− | + | For j = 1 To 3 | |
− | + | Print "Prova";; i;; j | |
− | + | Next | |
− | + | ''<Font Color=gray>' Questo "Return" è connesso e dipendente dal "Gosub", in quanto posto dopo l'etichetta'' | |
+ | ' ''Pertanto il programma torna su: alla riga immediatamente successiva al "Gosub":''</font> | ||
+ | <Font Color= #B22222>Return</font> | ||
'''End''' | '''End''' | ||
Riga 73: | Riga 72: | ||
Return | Return | ||
− | Print "2° controllo" | + | Print "2° controllo" <Font Color=gray>' ''Questa riga sarà del tutto saltata''</font> |
'''End''' | '''End''' |
Versione delle 04:42, 23 mag 2014
L'istruzione GOSUB consente di saltare all'etichetta dichiarata all'interno della medesima routine, e continuare da lì l'esecuzione del codice. 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:
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 ' Questo "Return" è connesso e dipendente dal "Gosub", in quanto posto dopo l'etichetta ' Pertanto il programma torna su: alla riga immediatamente successiva al "Gosub": Return 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