25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.2 Istruzioni di diramazione 97<br />

Introdurre i coefficienti:<br />

1 5 3<br />

Le radici sono: -0.6972244 -4.302776<br />

Così come per il costruttoIF, è possibile assegnare unnome anche ad un costruttoSELECT CASE.<br />

Tale nome deve essere unico all’interno di ogni unità di programma e non può coincidere con<br />

il nome di una variabile o di una costante usata all’interno della stessa unità di programma.<br />

Se a un costrutto SELECT CASE è associato un nome, lo stesso nome deve comparire anche<br />

nell’istruzione END SELECT, mentre la sua presenza è facoltativa nelle clausole CASE.<br />

A titolo di esempio, si consideri il seguente frammento di programma:<br />

INTEGER :: mese<br />

stagioni: SELECT CASE(mese)<br />

CASE(3:5)<br />

WRITE(*,*) ’Primavera’<br />

CASE(6:8)<br />

WRITE(*,*) ’Estate’<br />

CASE(9:11)<br />

WRITE(*,*) ’Autunno’<br />

CASE(12,1,2)<br />

WRITE(*,*) ’Inverno’<br />

CASE DEFAULT<br />

WRITE(*,*) "Non e’ un mese"<br />

END SELECT stagioni<br />

L’esempio precedente stampa il nome della stagione associata al mese indicato. Se il valore del<br />

mese non appartiene all’intervallo intero 1÷12 viene applicata l’istruzione di default e viene,<br />

pertanto, stampato un messaggio di errore, altrimenti viene applicata una delle istruzioni CASE.<br />

Si noti che non esiste alcun ordine preferenziale nei valori di una istruzione CASE.<br />

Così come i costrutti IF, anche i costrutti SELECT CASE possono essere innestati allo scopo<br />

di gestire condizioni più complesse, come esemplificato dal seguente insieme di istruzioni:<br />

zero: SELECT CASE(n)<br />

CASE DEFAULT zero<br />

altri: SELECT CASE(n)<br />

CASE(:-1)<br />

segno = -1<br />

CASE(1:) altri<br />

segno = 1<br />

END SELECT altri<br />

CASE(0)<br />

segno = 0<br />

END SELECT zero

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

Saved successfully!

Ooh no, something went wrong!