Differenze tra le versioni di "REPEAT - UNTIL"

Da Gambas-it.org - Wikipedia.
Riga 42: Riga 42:
 
  '''End'''
 
  '''End'''
 
Pertanto il ciclo composto dalle parole-chiave ''Repeat...Unitil'' è equivalente al ciclo composto dalle parole-chiave ''Do...Loop Until''.
 
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.
 +
<BR>Esempio astratto:
 +
Repeat
 +
 +
<FONT Color=green>valore</font> = funzione( )  <FONT Color=gray>' ''Valore restituito dalla funzione''</font>
 +
 
 +
  Wait 0.01
 +
 
 +
<FONT Color=gray>' ''Il valore precedentemente restituito viene confrontato con quello attualmente restituito dalla medesima funzione:''</font>
 +
Until <FONT Color=green>valore</font> == funzione( )

Versione delle 09:06, 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 la logica di questo ciclo è considerando l'esempio di sopra: ripete il ciclo fino a che il valore della variabile "i" non diventa uguale a 10.


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 attualmente restituito dalla medesima funzione:
Until valore == funzione( )