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.