La boucle RÉPÉTER... JUSQU'À (REPEAT ... UNTIL)
Enfin, dans cette section, nous présentons le dernier type de boucles (i.e. la boucle RÉPÉTER ... JUSQU’À). Sa description et sa syntaxe sont données dans ce qui suit.
Description de la boucle
La boucle RÉPÉTER ... JUSQU'À est utilisée quand le traitement à faire doit se répéter au moins une fois[1]. Elle se base sur un principe inverse de celui de la boucle TANT QUE ... FAIRE[2]. En fait, dans le cadre de RÉPÉTER ... JUSQU’À, la condition est vérifiée à la sortie de la boucle et non pas à son entrée. En d'autres termes, on rentre dans la boucle quelque soit la condition et on répète le traitement à faire jusqu'à ce que la condition soit vérifiée (retourne Vrai).
La boucle RÉPÉTER ... JUSQU’À est utilisée essentiellement pour le contrôle des valeurs, saisies par clavier, avant de lancer un traitement[3].
Syntaxe : La boucle RÉPÉTER ... JUSQU'À
La syntaxe de la boucle RÉPÉTER ... JUSQU'À est donnée comme suit :
RÉPÉTER
Traitement ;
JUSQU'À (condition) ;
Ou en langage C :
REPEAT
Traitement ;
WHILE (condition) ;

Exemple : Nombre de divisions par 2
Écrire un algorithme qui permet à l'utilisateur de saisir un nombre pair et qui détermine combien de fois le nombre saisi est divisible par 2.
ALGORITHME Pair-NbDIV2 ;
VAR N, N2, N3 : Entier ;
DÉBUT
RÉPÉTER
ÉCRIRE ('Donnez un entier pair') ;
LIRE (N) ;
JUSQU'À (N MOD 2 = 0) ;
N2 <- 0 ;
N3 <- N ;
RÉPÉTER
N3 <- N3 DIV 2 ;
N2 <- N2 +1 ;
JUSQU'À ((N3 MOD 2) <> 0) ;
ÉCRIRE (N, ' est divisible par 2 ', N2, ' fois ') ;
FIN.
Complément : La boucle RÉPÉTER ... JUSQU'À pour le contrôle de saisie
Prenons le cas d'une saisie au clavier (une lecture) de notes qui sont comprises entre 0 et 20. Lors de la saisie, l'utilisateur, par erreur ou ignorance, risque de taper autre chose que la réponse attendue (i.e. une valeur comprise entre 0 et 20). Dès lors, le programme peut planter soit :
Par une erreur d'exécution : parce que le type de réponse ne correspond pas au type de la variable attendu. Exemple : l'utilisateur tape une lettre ou un mot alors que le type de la variable note est de type Réel.
Par une erreur fonctionnelle : il se déroule normalement jusqu'au bout, mais en produisant des résultats erronés. Exemple : l'utilisateur tape une note non comprise entre (0 et 20), il tape par exemple 23, -5, etc.
Alors, dans tout programme, on doit mettre en place ce qu'on appelle
, afin de vérifier que les données entrées au clavier correspondent bien à celles attendues par l'algorithme.un contrôle de saisie
Le principe général du contrôle de saisie consiste à mettre la lecture de la variable à lire dans une boucle dont on ne sort pas jusqu'à ce que l'utilisateur tape une valeur qui correspond à ce que nous voulons. Nous pouvons utiliser soit la boucle TANT QUE ... FAIRE ou la boucle RÉPÉTER ... JUSQU'À pour faire un contrôle de saisie. Mais la boucle RÉPÉTER ... JUSQU'À est la mieux adaptée pour çà.
Exemple : Saisir une note d'un module
Faire un contrôle de saisie sur la lecture d'une note d'un examen.
RÉPÉTER
ÉCRIRE ('Tapez la note : ') ;
LIRE (note) ;
JUSQU'À ((note >= 0) ET (note ≤20));