Do Loop ( Visual Basic )
In Visual Basic l'istruzione Do Loop è una struttura iterativa a ciclo indeterminato, esegue un blocco di istruzioni finché una condizione è soddisfatta.
L'istruzione DO LOOP è molto più flessibile dell'istruzione WHILE, perché consente di terminare il ciclo all'inizio o alla fine. Inoltre, può lavorare sia con una condizione vera che falsa ( la clausola UNTIL è una condizione di uscita ). Può anche eseguire cicli determinati come una FOR NEXT.
Esistono due tipi di strutture Do Loop.
Do While/Until Loop
Do { While | Until } condizione
[ blocco istruzioni ]
Loop
Do Loop While/Until
Do
[ blocco istruzioni ]
Loop { While | Until } condizione
La condizione di controllo viene verificata alla fine del ciclo.
Do While/Until Loop
La condizione di controllo viene verificata all'inizio del ciclo.
L'uso della clausola While o Until è obbligatorio ma l'una esclude l'altra.
Do { While | Until } condizione
[ blocco istruzioni ]
Loop
Qual è la differenza tra While e Until?
La struttura iterativa esegue il blocco di istruzioni soltanto in due casi:
- While. Esegue l'iterazione se la condizione è vera.
- Until. Esegue l'iterazione se è la condizione è falsa. Termina l'iterazione se è vera.
Nota. L'istruzione Do While ha un funzionamento analogo all'istruzione While EndWhile.
Esempi
Esempio 1 ( Do While Loop )
Questa struttura esegue dieci cicli, perché nei primi dieci cicli la condizione (x<10) è vera.
Esempio 2 ( Do Until Loop )
Questa struttura iterativa compie 10 cicli. Nei primi dieci cicli la condizione (x>9) è falsa.
Poi diventa vera e il ciclo si interrompe.
Do Loop While/Until
La condizione di controllo viene verificata alla fine del ciclo.
Quindi, l'istruzione esegue il blocco di istruzioni almeno una volta.
Do
blocco di istruzioni
Loop { While | Until } condition
Le iterazioni successive girano soltanto in due casi:
- While. Esegue l'iterazione se la condizione è vera.
- Until. Termina l'iterazione se la condizione è vera. Esegue l'iterazione se è falsa.
Esempi
Esempio 1 ( Do Loop While )
Questa struttura compie 10 cicli perché nei primi dieci cicli la condizione (x<10) è vera.
Il controllo è però posto alla fine di ogni ciclo.
Esempio 2 ( Do Loop Until )
Questa struttura compie dieci cicli perché nelle prime dieci iterazioni la condizione di uscita (x>9) è falsa.
Il controllo è però posto alla fine di ogni ciclo.
Nota. Anche se la condizione di uscita fosse vera alla prima iterazione, l'istruzione DO LOOP UNTIL eseguirebbe comunque un ciclo perché il controllo si trova in fondo alla struttura.
Continue Do
La clausola Continue Do forza l'uscita dall'iterazione corrente.
Il flusso salta alla condizione della struttura iterativa e, se soddisfatta, comincia l'iterazione successiva.
In questo esempio il programma stampa i numeri da 1 a 9 tranne il numero 2.
L'output è il seguente:
1 3 4 5 6 7 8 9
Exit Do
La clausola Exit Do forza l'uscita dal ciclo.
Il flusso salta alla prima istruzione dopo la struttura iterativa.
Il precedente esempio stampa i numeri da 1 a 4.
L'output è il seguente:
1 2 3 4
Quando (x==5) la clausola EXIT DO forza l'uscita dal ciclo.
E' così via.