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
ENDDO
cela 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 compte
alos 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
ENDDO
tant que la condition est vraie alors les instructions sont exécutées.