L'istruzione DO WHILE in Fortran

La struttura ciclica DO WHILE compie un numero indefinito di iterazioni perché l'uscita dal loop è legata al verificarsi di un evento.

Nota. La struttura ciclica non è inclusa in tutte le versioni Fortran. Nelle vecchie versioni del linguaggio non è presente.

Posso usare due metodi alternativi.

DO WHILE / CONTINUE

Questa struttura è racchiusa tra le parole DO WHILE e CONTINUE.

DO linea WHILE ( condizione )
...
linea CONTINUE

Nell'istruzione iniziale indico il numero di linea della fine del ciclo e la condizione che causa la ripetizione del ciclo.

Il loop si ripete finché la condizione è vera.

Quando la condizione diventa falsa, il programma esce dal ciclo.

Attenzione. E' necessario indicare il numero di linea in cui termina il blocco delle istruzioni ricorsive.

Esempio

Questo programma stampa i primi 10 numeri naturali.

DO 100 WHILE ( I .LT. 10 )
WRITE(*,*) I
I=I+1
100 CONTINUE

Il loop si ripete finché la variabile I è minore (.LT.) di 10.

La parte ricorsiva stampa a video il valore della variabile I e la incrementa di 1.

L'output del programma è il seguente:

0
1
2
3
4
5
6
7
8
9

Quando la variabile I diventa uguale a 10, il programma esce dal ciclo.

DO WHILE / END DO

Questa struttura ciclica alternativa è compresa tra le parole DO WHILE e END DO.

In questa forma non devo indicare il numero di linea della fine del blocco di istruzioni.

DO WHILE ( condizione )
...
END DO

Il ciclo si ripete finché la condizione di controllo è vera.

Quando la condizione diventa falsa, il programma esce dal loop.

Esempio

In questo programma stampo a video i primi numeri 10 numeri naturali con la struttura DO WHILE / END DO.

DO WHILE ( I .LT. 10 )
WRITE(*,*) I
I=I+1
END DO

Non indico alcun numero linea alla fine del blocco di istruzioni.

Il funzionamento e l'output della struttura iterativa è lo stesso.

0
1
2
3
4
5
6
7
8
9

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Le strutture cicliche del Fortran