Differenze tra le versioni di "REPEAT - UNTIL"
(13 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 3: | Riga 3: | ||
...... | ...... | ||
Until ''condizione'' | Until ''condizione'' | ||
− | 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 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() | |
− | + | Dim i As Integer | |
− | + | <FONT Color=red>'''Repeat'''</font> | |
− | + | Print i | |
− | + | Inc i | |
− | + | <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 | |
− | In sostanza la logica di questo 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''=== | |
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() | |
− | + | Dim i As Integer | |
− | + | <FONT Color=#B22222>Do</font> | |
− | + | Print 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> | |
− | + | 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. | ||
+ | <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: | ||
+ | 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 restituito '''attualmente''' dalla medesima funzione:''</font> |
− | + | 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( )