Nel linguaggio Fortran 90 un ciclo che esegue
un blocco di istruzioni un numero determinato
di volte è detto ciclo iterativo.I cicli
DO possono avere una delle due forme:
[nome:] DO indice=inizio,fine,incremento
istruzione1
istruzione2
.........
istruzionen
END DO nome
oppure:
[nome:] DO indice=inizio,fine
istruzione1
istruzione2
.........
istruzionen
END DO nome
Nel secondo caso l'incremento sarà unitario.Anche
in questo caso l'etichetta nome è facoltativa.
Nelle strutture di programma precedenti la variabile
indice è una variabile intera utilizzata come
contatore del ciclo iterativo, mentre le quantità
intere inizio,fine e incremento sono i parametri
del ciclo; hanno il compito di controllare i valori
della variabile indice durante l'esecuzione del
ciclo. Il parametro incremento è facoltativo;
se è omesso, viene impostato a l. Le istruzioni
comprese fra DO e END DO formano il corpo del
ciclo iterativo; vengono eseguite ad ogni ripetizione
del ciclo.
Il meccanismo di funzionamento di un ciclo iterativo
viene spiegato per passi nel prospetto seguente:
I) Ciascuno dei tre parametri inizio, fine e
incremento può essere una costante, una variabile
o un'espressione. Se si tratta di variabili o
espressioni, i loro valori vengono preventivamente
calcolati prima dell'inizio del ciclo.
2) All'inizio dell'esecuzione del ciclo DO, il
programma assegna il valore inizio alla variabile
di controllo indice. Se indice * incremento <=
fine * incremento, il programma esegue le istruzioni
all'interno del corpo del ciclo.
3) Dopo che le istruzioni del corpo del ciclo
sono state eseguite, la variabile di controllo
viene aggiornata nel modo seguente: indice = indice
+ incremento Se indice * incremento risulta ancora
inferiore a fine * incremento, il programma ripete
le istruzioni contenute nel corpo del ciclo.
4) Il passaggio 2 viene ripetuto fino a quando
indice * incremento <= fine * incremento. Nel
momento in cui questa condizione non risulta più
vera, il controllo passa alla prima istruzione
che si trova dopo la fine del ciclo (END DO).
L'esempio che segue ci permetterà di comprendere
meglio il meccanismo esaminato nei passi precedenti.
Analizzate l'esempio seguente:
DO i = 1, 100
istruzione 1
......
......
istruzione n
END DO
In questo caso, le istruzioni da 1 a n saranno
eseguite l00 volte. L'indice del ciclo avrà il
valore 100 durante l'ultimo passaggio del ciclo.
Quando il controllo passa all'istruzione DO dopo
il centesimo passaggio, l'indice del ciclo assumerà
il valore 101. Poichè 101 * 1 > 100
* 1, il controllo sarà trasferito alla
prima istruzione che segue END DO.