L'istruzione GOTO in Fortran

Il linguaggio Fortran mi permette di compiere un salto incondizionato a una determinata riga di codice tramite l'istruzione GOTO.

GOTO n

L'argomento n è l'etichetta numerica in cui saltare, ossia la riga del codice sorgente.

Quando il programma trova un'istruzione GOTO prosegue l'elaborazione alla riga indicata.

Se l'etichetta numerica non esiste, il programma va in errore.

Può anche essere scritta GO TO.

Nota. I salti incondizionati sono un'eredità della vecchia programmazione procedurale e andrebbero sempre evitati perché rendono meno leggibile un programma. Inoltre, qualsiasi salto incondizionato può essere gestito in modo alternativo tramite la programmazione strutturata.

Un esempio pratico di salto incondizionato

In questo programma creo un salto incondizionato dalla seconda riga alla quarta.

il salto incondizionato in Fortran

Il programma non esegue la riga tre del codice sorgente.

Pertanto, il risultato in output è il seguente:

B

E così via.

Goto calcolato

Il Fortran77 consente anche il goto calcolato, dove il salto è legato al valore di una variabile intera (k).

GOTO ( label1, label2, ... ) k

In base al valore della variabile, il programma seleziona la corrispondente label di destinazione nell'elenco.

Al posto del valore k posso anche indicare un'espressione o un calcolo ( es. x*z-1 ).

E se k è zero o troppo grande? Se il valore di k è uguale a zero o è superiore all'indice della lista delle label, il programma continua l'elaborazione all'istruzione successiva.

Esempio

un esempio di utilizzo del GOTO calcolato

Se k=1 l'istruzione goto salta alla label 10 (la prima della lista).

A
B

Se k=2 salta alla label 20 (la seconda della lista).

B

E così via.

Il goto condizionato è diventato obsoleto con le versioni successive del linguaggio.

Goto assegnato

Il Fortran77 prevede anche un altro tipo di salto. Si tratta del goto assegnato.

Assegno una stringa alfanumerica a una determinata label numerica.

ASSIGN numero-linea TO nome

Dopo l'assegnazione posso effettuare dei salti alla riga utilizzando come label anche la stringa alfanumerica.

GOTO nome

E' un modo per rendere più comprensibile la stesura di un programma.

Attenzione. Nel Fortran 90 l'istruzione ASSIGN TO è diventata obsoleta. Nel Fortran 95 è stata cancellata.

Un esempio pratico

In questo programma assegno alle label numeriche 10 e 20 le stringe "primo" e "secondo".

un esempio pratico di GOTO assegnato

In questo modo posso effettuare il salto con GOTO indicando la label numerica.

Il risultato in output è il seguente

B

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Fortran