La struttura ciclica DO in Fortran

La struttura ciclica DO mi permette di realizzare un ciclo con N iterazioni predefinite. Esistono due sintassi:

DO / CONTINUE

Questa struttura ciclica è compresa tra DO e CONTINUE.

DO linea indice = inizio, fine, passo
...
linea CONTINUE

I parametri dell'istruzione DO sono:

  • il numero di linea finale in cui termina il blocco delle istruzioni da eseguire in modo ricorsivo.
  • il nome della variabile indice usata per contare il numero delle iterazioni.
  • il valore iniziale del ciclo
  • il valore finale del ciclo
  • il passo (opzionale). E' l'incremento della variabile contatore dopo ogni iterazione. Se questo valore è omesso, è uguale a +1 di default.

Nota. La parola che conclude il ciclo ( CONTINUE ) non include alcun riferimento alla variabile indice. E' però molto importante che abbia lo stesso numero di linea indicato dalla struttura DO, altrimenti il loop non funziona.

Esempio

Questo programma stampa i primi numeri dispari.

DO 100 I=1,10,2
WRITE(*,*) I
100 CONTINUE

Il loop parte dal valore iniziale 1 fino a 10.

Il passo è uguale a +2. Pertato, compie 5 iterazioni.

L'output del programma è il seguente:

1
3
5
7
9

DO / END DO

In alcune versioni del Fortran la parola CONTINUE è sostituita con END DO.

DO indice = inizio, fine, passo
...
END DO

Il principio di funzionamento resta lo stesso. In questo caso non occorre indicare il numero di linea.

Esempio

Provo a realizzare lo stesso output usando la parola terminale END DO al posto di CONTINUE.

DO I=1,10,2
WRITE(*,*) I
END DO

In questo caso non devo indicare il numero di linea in cui termina il blocco delle istruzione.

L'output è sempre lo stesso.

1
3
5
7
9

E così via.

 


 

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

FacebookTwitterLinkedinLinkedin
knowledge base

Le strutture cicliche del Fortran