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.2 Istruzioni di diramazione <strong>95</strong><br />

o una istruzione END IF. Se i costrutti non hanno nome, il compilatore associa sempre una<br />

istruzione END IF all’ultima istruzione IF; naturalmente questo metodo funziona bene con un<br />

programma scritto correttamente ma può provocare messaggi di errore abbastanza ambigui in<br />

presenza di qualche errore (basti pensare al caso in cui, durante una sessione di editing, una<br />

istruzione END IF venga cancellata accidentalmente).<br />

2.2.2 <strong>Il</strong> costrutto SELECT CASE<br />

<strong>Il</strong> costrutto SELECT CASE è un’altra forma di costrutto di diramazione e fornisce un’alternativa<br />

ad una serie di istruzioni IF THEN ELSE. Esso permette al programmatore di selezionare un<br />

particolare blocco di istruzioni da eseguire in funzione del valore assunto da una variabile di<br />

controllo di tipo intero o carattere, o da un’espressione logica. La sua forma generale è:<br />

[nome:] SELECT CASE(espressione)<br />

CASE(valore) [selettore_1]<br />

blocco_1<br />

CASE(valore) [selettore_2]<br />

blocco_2<br />

...<br />

[CASE DEFAULT<br />

blocco]<br />

END SELECT [nome]<br />

<strong>Il</strong> risultato di espressione può essere di tipo INTEGER, CHARACTER o LOGICAL; la variabile<br />

selettore_i deve essere dello stesso tipo di espressione e può essere una combinazione di:<br />

• un singolo valore di tipo INTEGER, CHARACTER o LOGICAL;<br />

• min: col significato di un qualsiasi valore dello stesso tipo di min e che sia di questo ”non<br />

minore”;<br />

• :max col significato di un qualsiasi valore dello stesso tipo di min e che sia di questo ”non<br />

maggiore”;<br />

• min:max col significato di un qualsiasi valore compreso tra i due limiti min e max ;<br />

• una lista formata da una combinazione qualsiasi delle forme precedenti, separate da<br />

virgole.<br />

Se il valore di espressione è compreso nell’intervallo dei valori di selettore_1 verranno<br />

eseguite le istruzioni del blocco_1 ; analogamente, se il valore di espressione è compreso<br />

nell’intervallo dei valori di selettore_2 verranno eseguite le istruzioni del blocco_2 , e così<br />

via. Tale criterio si applica a tutti gli altri ”casi” del costrutto. La clausola CASE DEFAULT è<br />

opzionale e copre tutti gli altri possibili valori di espressione non previsti dalle altre istruzioni<br />

CASE. Se il blocco DEFAULT viene omesso e il valore di espressione non è compreso in un<br />

intervallo dei selettori, non sarà eseguita alcuna istruzione.

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

Saved successfully!

Ooh no, something went wrong!