Differenze tra le versioni di "GOSUB"
Riga 18: | Riga 18: | ||
Dim j As Integer | Dim j As Integer | ||
− | For i = 1 To | + | For i = 1 To 3 |
<Font Color= #B22222>GoSub</font> etichetta1 ''<Font Color= #006400>' Il programma salta alla riga dove è presente l'etichetta "etichetta1"''</font> | <Font Color= #B22222>GoSub</font> etichetta1 ''<Font Color= #006400>' Il programma salta alla riga dove è presente l'etichetta "etichetta1"''</font> | ||
Next | Next | ||
Riga 44: | Riga 44: | ||
<BR>Prova 3 2 | <BR>Prova 3 2 | ||
<BR>Prova 3 3 | <BR>Prova 3 3 | ||
− | < | + | |
− | < | + | |
− | + | Bisogna tenere conto che l'istruzione Return, una volta "utilizzata", e qualora non immediatamente chiamata ''nuovamente'' dal proprio comando GOSUB, si "trasforma" in un normale Return, determinando, così, l'uscita del processo dalla routine. | |
− | + | ||
− | <BR> | + | Esempio: |
− | <BR> | + | |
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Dim i As Integer | ||
+ | Dim j As Integer | ||
+ | |||
+ | GoSub label1 | ||
+ | |||
+ | Print "Il GOSUB farà saltare questa riga, ma poi il Return farà tornare il programma proprio qui." | ||
+ | |||
+ | label1: | ||
+ | |||
+ | Print "1° controllo" | ||
+ | |||
+ | Return | ||
+ | |||
+ | Print "2° controllo" ''<Font Color= #006400>' Questa riga sarà del tutto saltata''</font> | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | In console avremo infatti questo risultato: | ||
+ | |||
+ | 1° controllo | ||
+ | <BR>Il GOSUB farà saltare questa riga, ma poi il Return farà tornare il programma proprio qui. | ||
+ | <BR>1° controllo |
Versione delle 18:41, 4 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 nuovamente 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 label1 Print "Il GOSUB farà saltare questa riga, ma poi il Return farà tornare il programma proprio qui." label1: 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 farà tornare il programma proprio qui.
1° controllo