- I cicli DO in F90 non differiscono sostanzialmente dal
F77, ma si consiglia di usare la variante in cui il ciclo si chiude
non con un'istruzione etichettata ma con l'ENDDO.
- F95 mette al bando i cicli DO con l'indice reale, di
scarsa utilità e che non garantiscono un numero esatto di iterazioni,
possono essere rimpiazzati con un minimo di aritmetica intero/reale.
- F90 ufficializza anche i cicli DO WHILE, già presenti in
molte estensioni non standard F77; il ciclo viene eseguito finché il
valore dell'espressione logica in WHILE rimane vera;
l'espressione viene valutata anche prima dell'eventuale prima
iterazione.
- L'istruzione CYCLE permette di saltare immediatamente
all'iterazione successiva del ciclo più interno, mentre EXIT
fa terminare immediatamente il ciclo più interno
- I cicli possono essere etichettati nel DO e, volendo,
anche nell'ENDDO; l'etichetta può essere usata da
CYCLE e EXIT per riferirsi ad un ciclo più esterno
|
PROGRAM cicli
INTEGER :: i, ni, nj
REAL :: t(:,:), delta, somma
DO i = 1, 10
PRINT*,i
ENDDO
trovato = .FALSE.
extern: DO j = 1, nj
DO i = 1, ni
IF (t(i,j) < 273.15) THEN
trovato = .TRUE.
EXIT exter
ENDIF
ENDDO
ENDDO extern
IF (trovato) PRINT*,'Prevedo gelate'
delta = 0.
DO WHILE(delta < 1.)
somma = funz(x,y)
IF (somma < 0.) CYCLE
delta = delta + SQRT(somma)
END WHILE
END PROGRAM cicli
|