Syntaxe de la boucle.
[nom:] DO bloc1 IF (exp_log) EXIT bloc2 ENDDO [nom]est exécuté et si est vraie on sort de la boucle (i.e on exécute les instructions juste après ) sinon on exécute le et on recommence.
Il faut que la valeur de change à l'intérieur des blocs concernés sinon on aboutira à une boucle infinie (et le programme se demandera où est la sortie !!)
Exemple.
DO IF (S >= 100) EXIT PRINT*,'Donner un nombre entier : ' READ*,N S= S+N ENDDOcela veut dire, tant que , alors on exécute le bloc.
Un exemple avec l'utilisation des noms des boucles :
Fini = .FALSE. compte: DO READ*,S IF (S < 0.) EXIT compte somme: DO I=1,N S = S + A(I) IF (S < 0.) EXIT compte Y(I) = LOG(S) ENDDO somme Z = 2.*LOG(S) ENDDO compteL'instruction EXIT peut apparaître dans n'importe quel type de boucle : avec compteur, boucle infinie. Dans cet exemple si on précise pas le nom de la boucle dans
IF (S < 0.) EXIT comptealos le programme sort de la boucle et dans ce cas il calcule et il se plante via un 'overflow'
On peut utiliser également la boucle DO WHILE, par exemple
DO WHILE (S< 100) PRINT*,'Donner un nombre entier : ' READ*,N S= S+N ENDDOtant que la condition est vraie alors les instructions sont exécutées.