25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.3 Istruzioni di ripetizione 107<br />

Allo stesso modo è facile comprendere che, dato il seguente costrutto:<br />

! Esempio 3: cicli innestati completati<br />

DO i=1,10<br />

DO j=i,i**2<br />

DO k=j+1,i*10<br />

sum = i+j+k<br />

END DO<br />

END DO<br />

END DO<br />

PRINT*, i, j, k, sum<br />

il risultato da esso prodotto sarà il record:<br />

11 101 101 209<br />

2.3.2 <strong>Il</strong> ciclo a condizione<br />

Un ciclo a condizione rappresenta un particolare blocco di istruzioni che viene ripetuto finché<br />

non risulti soddisfatta una particolare condizione logica. La forma generale di un ciclo a<br />

condizione è:<br />

[nome:] DO<br />

...<br />

IF (espressione_logica) EXIT<br />

...<br />

END DO [nome]<br />

<strong>Il</strong> blocco di istruzioni compreso fra DO e END DO viene ripetuto finché l’espressione logica<br />

non diventi vera; a questo punto viene eseguita l’istruzione EXIT e il controllo delle operazioni<br />

passa alla prima istruzione che segue END DO. Come si nota dallo schema precedente, normalmente<br />

il blocco di istruzioni del corpo del ciclo è diviso in più ”frammenti” separati da una o<br />

più istruzioni ”di uscita”.<br />

L’istruzione IF può trovarsi in qualsiasi punto all’interno del corpo del ciclo e viene eseguita<br />

ad ogni passaggio. Chiaramente, se espressione_logica risulta vera già la prima volta che<br />

viene raggiunto il ciclo le istruzioni che, nel blocco, seguono l’istruzione IF non vengono mai<br />

eseguite.<br />

In generale, il test sulla condizione_logica può essere inserito in un punto qualsiasi fra<br />

le istruzioni DO e END DO, ma le varianti più comuni sono quelle note come ciclo a condizione<br />

iniziale e ciclo a condizione finale, utilizzate spesso nella programmazione di problemi di carattere<br />

iterativo. Inoltre, è possibile inserire anche più di una istruzione IF all’interno dello<br />

stesso loop, ciascuna con la relativa clausola di uscita, sebbene un ”eccesso” di clausole CYCLE<br />

ed EXIT può rendere il codice più difficile da leggere e da gestire. Infine, per l’attribuzione di<br />

un nome al costrutto DO condizionale, valgono le stesse regole e le raccomandazioni già discusse<br />

a proposito del ciclo DO a conteggio.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!