Differenze tra le versioni di "GOSUB"

Da Gambas-it.org - Wikipedia.
Riga 10: Riga 10:
 
   Dim j As Integer
 
   Dim j As Integer
 
   
 
   
   For i = 1 To 10
+
   For i = 1 To 5
 
     <Font Color= #B22222>GoSub</font> label1  ''<Font Color= #006400>' Il programma salta alla riga dove è presente l'etichetta "label1"''</font>
 
     <Font Color= #B22222>GoSub</font> label1  ''<Font Color= #006400>' Il programma salta alla riga dove è presente l'etichetta "label1"''</font>
 
   Next
 
   Next
Riga 28: Riga 28:
  
 
Prova 1 1
 
Prova 1 1
Prova 1 2
+
<BR>Prova 1 2
Prova 1 3
+
<BR>Prova 1 3
Prova 2 1
+
<BR>Prova 2 1
Prova 2 2
+
<BR>Prova 2 2
Prova 2 3
+
<BR>Prova 2 3
Prova 3 1
+
<BR>Prova 3 1
Prova 3 2
+
<BR>Prova 3 2
Prova 3 3
+
<BR>Prova 3 3
Prova 4 1
+
<BR>Prova 4 1
Prova 4 2
+
<BR>Prova 4 2
Prova 4 3
+
<BR>Prova 4 3
Prova 5 1
+
<BR>Prova 5 1
Prova 5 2
+
<BR>Prova 5 2
Prova 5 3
+
<BR>Prova 5 3
Prova 6 1
 
Prova 6 2
 
Prova 6 3
 
Prova 7 1
 
Prova 7 2
 
Prova 7 3
 
Prova 8 1
 
Prova 8 2
 
Prova 8 3
 
Prova 9 1
 
Prova 9 2
 
Prova 9 3
 
Prova 10 1
 
Prova 10 2
 
Prova 10 3
 

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

Esempio:

 ' Gambas class file

Public Sub Button1_Click()
 
 Dim i As Integer
 Dim j As Integer

 For i = 1 To 5
   GoSub label1   ' Il programma salta alla riga dove è presente l'etichetta "label1"
 Next

     Return   ' Il programma esce fuori dalla routine, poiché questo è un normale Return

 label1:
 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
Prova 4 1
Prova 4 2
Prova 4 3
Prova 5 1
Prova 5 2
Prova 5 3