Differenze tra le versioni di "REPEAT - UNTIL"

Da Gambas-it.org - Wikipedia.
Riga 16: Riga 16:
 
     Print i
 
     Print i
 
     Inc i
 
     Inc i
   <FONT Color=#B22222>Until</font> i = 10   <FONT Color=gray>' ''Se "i" è uguale a 10, allora si esce dal ciclo; altrimenti il ciclo è ripetuto</font>
+
   <FONT Color=#B22222>Until</font> i = 10 <FONT Color=gray>' ''Se "i" è uguale a 10, allora si esce dal ciclo; altrimenti il ciclo è ripetuto</font>
 
    
 
    
 
   Print i
 
   Print i

Versione delle 09:15, 26 ago 2020

Il ciclo Repeat...Until, la cui sintassi è:

Repeat
  ......
Until condizione

viene ripetuto fintanto che condizione risulta falsa: se condizione è falsa, allora il ciclo viene ripetuto.

Poiché condizione è posta in fondo al ciclo, la sua prima verifica avviene soltanto al compimento del primo ciclo. Ciò determina che il ciclo viene compiuto almeno una volta a prescindere dal risultato di condizione.


Mostriamo un esempio pratico:

Public Sub Main()
 
 Dim i As Integer
 
  Repeat
    Print i
    Inc i
  Until i = 10  ' Se "i" è uguale a 10, allora si esce dal ciclo; altrimenti il ciclo è ripetuto
  
  Print i
  
End

In sostanza, considerando il precedente esempio, la logica di questo ciclo è: ripete il ciclo fino a che il valore della variabile "i" è diverso da 10. Quando quel valore diventa uguale a 10, si esce dal ciclo.


Equivalenza tra il ciclo Repeat...Unitil ed il ciclo Do...Loop Until

Al posto del ciclo Repeat...Until è possibile utilizzare il ciclo Do...Loop Until, il quale si comporta esattamente come il ciclo Repeat...Until.


Mostriamo un esempio pratico:

Public Sub Main()
 
 Dim i As Integer
 
  Do
    Print i
    Inc i
  Loop Until i = 10   ' Se "i" è uguale a 10, allora si esce dal ciclo; altrimenti il ciclo è ripetuto
  
  Print i
  
End

Pertanto il ciclo composto dalle parole-chiave Repeat...Unitil è equivalente al ciclo composto dalle parole-chiave Do...Loop Until.


Uscire da un ciclo Repeat...Until quando una funzione restituisce un valore identico a quello precedentemente restituito

Se si deve prescrivere che la condizione del ciclo "Repeat...Until " si verifichi soltanto quando una funzione restituisce un valore identico a quello precedentemente da essa restituito, bisognerà servirsi di una idonea variabile di appoggio.
Esempio astratto:

Repeat

valore = funzione( )  ' Valore restituito dalla funzione
 
  Wait 0.01
  
' Il valore, precedentemente restituito, viene confrontato con quello restituito attualmente dalla medesima funzione:
Until valore == funzione( )