DO
DO [ WHILE Condizione ]
.
.
.
[ BREAK | CONTINUE ]
.
.
.
LOOP [ UNTIL Condizione ]
Ripete un numero di dichiarazioni fino a che la condizione iniziale rimane vera o fino a che la condizione finale diventa vera. Se ne
WHILE ne
UNTIL sono usati, allora il ciclo diventa infinito, e l'unico modo per poter uscire è quello di utilizzare la parola chiave
BREAK. Se break non è gestita dal programma, o non si avvera mai la condizione per poterlo utilizzare, il programma girerà all'infinito. Una situazione veramente indesiderabile.
|
Parte
|
Descrizione
|
|
DO
|
Sempre la prima istruzione del ciclo.
|
|
WHILE
|
Se utilizzata, Condizione deve essere vera per eseguire il ciclo.
|
|
UNTIL
|
Se utilizzata Condizione deve essere vera per fermare l'esecuzione del ciclo.
|
|
Condizione
|
Un'espressione booleana.
|
|
BREAK
|
salta subito fuori dal ciclo e continua l'esecuzione del programma con la riga successiva al ciclo.
|
|
CONTINUE
|
lascia subito tutte le seguenti dichiarazioni nel ciclo e passa alla fine facendolo ricominciare da capo.
|
|
LOOP
|
Deve essere l'ultima parola della struttura.
|
 |
Se Condizione su WHILE è falsa all'inizio, allora il ciclo non viene eseguito affatto. In caso contrario, il ciclo sarà eseguito almeno una volta, anche se Condizione su UNTIL è vera per cominciare.
|
Esempio
' Un loop veramente semplice.
a = 1
DO WHILE a <= 5
PRINT "Ciao a tutti"; a
INC a
LOOP
Hello World 1
Ciao a tutti 2
Ciao a tutti 3
Ciao a tutti 4
Ciao a tutti 5
' Lo stesso effetto ma utilizzando UNTIL.
DO
PRINT "Ciao a tutti"; a
INC a
LOOP UNTIL a = 6
 |
Attenzione! in riferimento all'esempio ultimo di cui sopra, non mettete nel ciclo in UNTIL un qualsiasi valore definito in "a" anche maggiore di 5. potrebbe accadere per qualche motivo di entrare in un ciclo infinito. Meglio usare la condizione "a > 5". Questo sicuramente minimizza il rischio di ciclo infinito.
|
' 'Questo loop non potrà mai raggiungere il valore stabilito all'inizio.
a = 1
DO WHILE a <= 5
PRINT "Ciao a tutti"; a
INC a
IF a = 4 THEN BREAK
LOOP
Ciao a tutti 1
Ciao a tutti 2
Ciao a tutti 3