next up previous contents
Next: Structure de boucle infinie Up: Les structures de contrôle Previous: l'instruction SELECT CASE   Contents

La boucle avec compteur DO

Son rôle est de répéter un bloc d'instructions plusieurs fois. Exemple.
 
       REAL, DIMENSION (10)  :: A
       S = 0.
       DO I = 1, 10
          S = S + A(I)
       ENDDO
Ainsi les dix élément du tableau A sont additionnés. Le bloc
 
       S= S +A(I)
est répété $ 10$ fois en donnant à I successivement les valeurs $ 1,2,...,10$.

Il est possible de définir un incrément différent de $ 1$, par exemple si on souhaite additionner les éléments pairs du tableau $ A$,

 
       S= 0.
       DO I = 2, 10, 2
          S = S + A(I)
       ENDDO
$ I$ prend successivement les valeurs $ 2,4,6,8,10.$

L'incrément peut être négatif, ainsi

 
       S= 0.
       DO I = 9, 1, -1
          S = S + A(I)
       ENDDO
somme mes éléments impairs du tableau $ A$.

Syntaxe de la boucle.

 
       [nom:]  DO I = debut, fin, pas
                  bloc
               ENDDO [nom]

$ \bullet$ Si $ pas$ est omis, il est pris par défaut égal à 1.

$ \bullet$ $ var$ ne doit pas être modifiée dans le bloc régit par la boucle

$ \bullet$ le bloc n'est pas exécuté (on sort de la boucle) quand $ var$ dépasse $ fin$

$ \bullet$ si $ pas$ est négatif et $ debut > fin$, la boucle n'est pas exécutée. Par exemple

 
       DO I = 9, 1
          S = S + A(I)
       ENDDO
cette boucle n'est pas exécutée.



Mazen Saad 2002-12-12