Home > lang > do 
 en fr de es nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW eo
Precedente  Successivo  Modifica  Rinomina  Undo  Refresh  Search  Amministrazione  
Documentazione
History
 
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

Vedi anche

Strutture di controllo sui cicli