GOSUB: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 49: Riga 49:
----
----


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.
 
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:
Esempio:

Versione delle 19:44, 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 al suo primo passaggio 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 al suo primo passaggio farà tornare il programma proprio qui.
1° controllo