Début de la boite de navigation du chapitre


Les boucles, ou structures répétitives, ou encore structures itératives permettent de répéter une certaine séquence d'instructions un certain nombre de fois, ou bien tant qu'une condition est vérifiée. L'instruction PERFORM nous permet d’utiliser de telles structures ; voyons les différents formats de cette instruction.

Boucles
Icône de la faculté
Chapitre no 5
Leçon : COBOL
Chap. préc. :Conditions
Chap. suiv. :Tableaux
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « COBOL : Boucles
COBOL/Boucles
 », n'a pu être restituée correctement ci-dessus.

Itérer en fonction d'une condition modifier


En utilisant ce format, les instructions du corps de la boucle seront exécutées jusqu'à ce que la condition énoncée après le UNTIL soit vérifiée. Le NOT permet de nier cette condition.

La clause facultative TEST BEFORE|AFTER précise si le test de la condition doit se faire avant ou après chaque exécution de la boucle. Si vous faites le test après (TEST AFTER), la boucle sera parcourue au moins une fois. Le comportement par défaut est celui du TEST BEFORE, c'est-à-dire que l’on teste la condition avant d'entrer dans la boucle.

Voici un premier exemple dans lequel on boucle jusqu'à ce que l'utilisateur entre 1 ou 2 au clavier :

Début de l'exemple
Fin de l'exemple


On déclare une variable saisie (initialisée à 0) et une variable conditionnelle associée, correcte qui vaut TRUE quand saisie vaut 1 ou 2. On définit ensuite une boucle qui s'exécute jusqu'à ce que correcte soit vérifiée (donc avec saisie = 1 ou = 2).

Itérer un certain nombre de fois modifier


Ce format de l'instruction PERFOM nous permet d'exécuter les instructions de la boucle exactement n fois. Dans ce cas, n doit être un entier naturel.

Voici par exemple un programme qui demande à l'utilisateur de saisir une phrase et un entier et qui répète autant de fois cette phrase :

Début de l'exemple
Fin de l'exemple


Itérer avec un compteur modifier


En utilisant ce dernier format, les instructions du corps de la boucle seront exécutées jusqu'à ce que la condition énoncée après le UNTIL soit vraie. Le NOT permet, là aussi, de nier cette condition. Cette condition doit être une condition numérique (égalité, infériorité, supériorité, différence, etc.).

i doit être un identificateur de variable numérique, il sera modifié à chaque itération : il fera office de compteur. Il doit figurer dans la condition de sortie de cette boucle.

x doit être de type numérique, il indiquera la valeur prise par le compteur pour la première itération.

y doit également être de type numérique, il indique le pas du compteur : c’est la valeur qui sera ajoutée au compteur à chaque itération.

Voici un exemple dans lequel on utilise ce dernier format :

Début de l'exemple
Fin de l'exemple


On demande à l'utilisateur un entier k, on va ensuite lister tous les nombres impairs de 1 jusqu'à k. La variable compteur va contenir successivement chacun de ces nombres impairs.