Differenze tra le versioni di "REPEAT - UNTIL"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 4: Riga 4:
 
  Until ''condizione''
 
  Until ''condizione''
 
viene ripetuto fintanto che ''condizione'' risulta <SPAN Style="text-decoration:underline">falsa</span>.
 
viene ripetuto fintanto che ''condizione'' risulta <SPAN Style="text-decoration:underline">falsa</span>.
Pertanto, se ''condizione'' è falsa, allora il ciclo viene ripetuto; se invece ''condizione'' è vera, allora il ciclo non viene più ripetuto
+
<BR>Pertanto, se ''condizione'' è "falsa", allora il ciclo viene ripetuto; se invece ''condizione'' è "vera", allora il ciclo non viene più ripetuto.
  
 
Poiché ''condizione'' è posta in fondo al ciclo, la sua ''prima'' verifica avviene soltanto al compimento del primo ciclo. Ciò determina ovviamente che il ciclo viene compiuto <SPAN Style="text-decoration:underline">almeno una volta</span> a prescindere dal risultato di ''condizione''.
 
Poiché ''condizione'' è posta in fondo al ciclo, la sua ''prima'' verifica avviene soltanto al compimento del primo ciclo. Ciò determina ovviamente che il ciclo viene compiuto <SPAN Style="text-decoration:underline">almeno una volta</span> a prescindere dal risultato di ''condizione''.
Riga 14: Riga 14:
 
   Dim i As Integer
 
   Dim i As Integer
 
    
 
    
  <FONT Color=#B22222>Repeat</font>
+
  <FONT Color=#B22222>Repeat</font>
    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
 
+
 
  '''End'''
 
  '''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''.
 
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''====
+
===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''.
 
Al posto del ciclo ''Repeat...Until'' è possibile utilizzare il ciclo '''Do...Loop Until''', il quale si comporta esattamente come il ciclo ''Repeat...Until''.
  
Riga 34: Riga 34:
 
   Dim i As Integer
 
   Dim i As Integer
 
    
 
    
  <FONT Color=#B22222>Do</font>
+
  <FONT Color=#B22222>Do</font>
    Print i
+
    Print i
    Inc i
+
    Inc i
  <FONT Color=#B22222>Loop 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>Loop 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
 +
 
  '''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''.

Versione attuale delle 19:32, 22 mag 2023

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

Repeat
  ......
Until condizione

viene ripetuto fintanto che condizione risulta falsa.
Pertanto, se condizione è "falsa", allora il ciclo viene ripetuto; se invece condizione è "vera", allora il ciclo non viene più ripetuto.

Poiché condizione è posta in fondo al ciclo, la sua prima verifica avviene soltanto al compimento del primo ciclo. Ciò determina ovviamente 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.
Tale variabile all'interno del ciclo verrà valorizzata dalla funzione, poi nella verifica della condizione del ciclo il valore precedentemente assegnato alla variabile viene confrontato con il valore ritornato correntemente dalla funzione.
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( )