Syntaxe de la boucle.
[nom:] DO bloc1 IF (exp_log) EXIT bloc2 ENDDO [nom]
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
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 compte
IF (S < 0.) EXIT comptealos le programme sort de la boucle
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.