Differenze tra le versioni di "GOSUB"

Da Gambas-it.org - Wikipedia.
Riga 45: Riga 45:
 
<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.
 
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.
Riga 57: Riga 60:
 
   GoSub label1
 
   GoSub label1
 
   
 
   
   Print "Il GOSUB farà saltare questa riga, ma poi il Return 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."
 
   
 
   
 
   label1:
 
   label1:
Riga 72: Riga 75:
  
 
1° controllo
 
1° controllo
<BR>Il GOSUB farà saltare questa riga, ma poi il Return farà tornare il programma proprio qui.
+
<BR>Il GOSUB farà saltare questa riga, ma poi il Return al suo primo passaggio farà tornare il programma proprio qui.
 
<BR>1° controllo
 
<BR>1° controllo

Versione delle 18:43, 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