Differenze tra le versioni di "REPEAT - UNTIL"

Da Gambas-it.org - Wikipedia.
 
(7 versioni intermedie di uno stesso utente non sono mostrate)
Riga 3: Riga 3:
 
   ......
 
   ......
 
  Until ''condizione''
 
  Until ''condizione''
viene ripetuto fintanto che ''condizione'' risulta <SPAN Style="text-decoration:underline">falsa</span>: se ''condizione'' è falsa, allora il ciclo viene ripetuto.
+
viene ripetuto fintanto che ''condizione'' risulta <SPAN Style="text-decoration:underline">falsa</span>.
 
+
<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 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''.
  
 
Mostriamo un esempio pratico:
 
Mostriamo un esempio pratico:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
  Dim i As Integer
+
  Dim i As Integer
 
    
 
    
  <FONT Color=#B22222>Repeat</font>
+
  <FONT Color=red>'''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=red>'''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" non diventa uguale a 10''.
+
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''.
 
  
 
Mostriamo un esempio pratico:
 
Mostriamo un esempio pratico:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
  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''.
  
Riga 46: Riga 45:
 
==Uscire da un ciclo ''Repeat...Until'' quando una funzione restituisce un valore identico a quello precedentemente restituito==
 
==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.
 
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>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.
 
<BR>Esempio astratto:
 
<BR>Esempio astratto:
 
  Repeat
 
  Repeat
 
   
 
   
<FONT Color=green>valore</font> = funzione( )  <FONT Color=gray>' ''Valore restituito dalla funzione''</font>
+
  <FONT Color=green>valore</font> = funzione( )  <FONT Color=gray>' ''Valore restituito dalla funzione''</font>
 
    
 
    
 
   Wait 0.01
 
   Wait 0.01
 
    
 
    
 
  <FONT Color=gray>' ''Il valore, '''precedentemente''' restituito, viene confrontato con quello restituito '''attualmente''' dalla medesima funzione:''</font>
 
  <FONT Color=gray>' ''Il valore, '''precedentemente''' restituito, viene confrontato con quello restituito '''attualmente''' dalla medesima funzione:''</font>
  Until <FONT Color=green>valore</font> <FONT Color=#B22222>==</font> funzione( )
+
  Until <FONT Color=green>valore</font> <FONT Color=red>==</font> funzione( )

Versione attuale delle 12:08, 5 lug 2024

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( )