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.

104 Istruzioni di controllo<br />

esso deve essere presente anche nell’istruzione END DO mentre è facoltativo nelle istruzioni EXIT<br />

e CYCLE (di queste ultime si parlerà fra poco). Ad esempio, il prossimo frammento fornisce un<br />

esempio di cicli annidati in maniera non corretta; avendo assegnato loro un nome il compilatore<br />

è in grado di segnalare l’errore, errore che in presenza di cicli senza nome si sarebbe presentato<br />

in maniera più ambigua soltanto in fase di esecuzione:<br />

esterno: DO i=1,m<br />

...<br />

interno: DO j=1,n<br />

...<br />

END DO esterno<br />

END DO interno<br />

Le operazioni eseguite da un ciclo iterativo possono essere gestite anche attraverso due<br />

ulteriori istruzioni di controllo: l’istruzione EXIT e l’istruzione CYCLE.<br />

L’istruzione EXIT<br />

L’istruzione EXIT rappresenta una utile facility per trasferire il controllo all’esterno del ciclo<br />

DO prima che venga raggiunta l’istruzione END DO o che venga completata l’esecuzione della<br />

iterazione corrente. La sua sintassi è:<br />

EXIT [nome]<br />

L’istruzione EXIT può essere inserita in un qualsiasi punto all’interno di un ciclo DO. Dopo<br />

che una istruzione EXIT sia stata eseguita l’esecuzione del ciclo viene interrotta e il controllo<br />

viene trasferito alla prima istruzione immediatamente successiva al ciclo.<br />

Si noti che, in presenza di cicliDO innestati, un’istruzione EXIT senza nome ha effetto sempre<br />

sul ciclo più interno mentre un’istruzione EXIT con nome ha effetto sul ciclo avente quel nome,<br />

anche se non è quello più interno.<br />

<strong>Il</strong> costrutto che segue rappresenta un esempio di impiego dell’istruzione EXIT. <strong>Il</strong> suo scopo è<br />

di valutare la somma di 5 elementi inseriti dall’utente con l’obbligo, però, di arrestarsi nel caso<br />

in cui il valore della somma raggiunga o superi una soglia massima:<br />

somma = 0.0<br />

DO i = 1,5<br />

READ(*,*) add<br />

somma = somma+add<br />

IF(somma>=soglia) EXIT<br />

END DO<br />

PRINT*, "Fatto!"<br />

L’istruzione CYCLE<br />

L’istruzione CYCLE permette di trasferire il controllo all’inizio del ciclo e di avviare una nuova<br />

iterazione senza che venga eseguita (o solo completata) l’iterazione corrente. La sua sintassi è:

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

Saved successfully!

Ooh no, something went wrong!