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 111<br />

<strong>Il</strong> blocco di istruzioni interno al ciclo è eseguito secondo quest’ordine:<br />

1. Viene valutato il valore di espressione_logica :<br />

• se questo valore è .FALSE., nessuna istruzione del blocco viene eseguita e il controllo<br />

passa alla prima istruzione che segue l’istruzione END DO;<br />

• se questo valore è .TRUE., viene eseguito il blocco di istruzioni a partire dalla prima<br />

istruzione che segue l’istruzione DO WHILE.<br />

2. Quando viene raggiunta l’istruzione finale del ciclo, il controllo ritorna all’istruzione<br />

DO WHILE, espressione_logica viene valutata di nuovo ed il ciclo riprende.<br />

Naturalmente anche il loopDO WHILE può essere ”generalizzato” prevedendo una o più istruzioni<br />

CYCLE e EXIT.<br />

Un esempio di utilizzo del costrutto DO WHILE è il seguente:<br />

CHARACTER(1) input<br />

input = ’ ’<br />

DO WHILE((input /= ’n’) .AND. (input /= ’y’))<br />

WRITE(*,’(A)’) ’Enter y or n: ’<br />

READ(*,’(A)’) input<br />

END DO<br />

ed ha lo scopo di sospendere l’esecuzione del programma in cui esso è inserito fino a che l’utente<br />

non introduca da tastiera il carattere y oppure il carattere n.<br />

Ciclo a condizione finale<br />

<strong>Il</strong> ciclo a condizione iniziale (anche detto ciclo repeat-until) si caratterizza per la presenza<br />

del test sulla condizione_logica in coda al blocco di istruzioni, subito prima dell’istruzione<br />

END DO. In tal caso, ovviamente, le istruzioni del corpo del ciclo verranno sempre eseguite<br />

almeno una volta. La forma generale di tale ciclo è la seguente:<br />

[nome:] DO<br />

blocco_di_istruzioni<br />

IF (espressione_logica) EXIT<br />

END DO [nome]<br />

Un esempio di ciclo a condizione finale è rappresentato dal seguente frammento di programma:<br />

INTEGER :: n<br />

...<br />

READ(*,*) n<br />

DO<br />

n = n**3

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

Saved successfully!

Ooh no, something went wrong!