La boucle répéter … tant que
La boucle RÉPÉTER ... TANT QUE
permet de réitérer un bloc d’instructions jusqu’à ce que la condition de sortie soit vérifiée. Cette structure est semblable à la structure TANT QUE
, avec la différence suivante que cette nouvelle évalue la condition après avoir exécuté le bloc d’instructions. Ainsi, le bloc d’instructions est toujours exécuté au moins une fois. Dans de telle boucle, on effectue généralement le passage au suivant, puis le traitement.

Dans la pratique, la structure RÉPÉTER ... TANT QUE
n’est pas si fréquente que sa rivale ; mais dans certains cas, elle fournit une solution plus élégante. Cette boucle est préférée pour évaluer des suites jusqu’à obtenir une précision suffisante. Cette boucle est également utilisée pour valider le contrôle de la saisie de l’utilisateur.
Le contrôle de la saisie
Dans les programmes informatiques, il est beaucoup plus convivial de permettre un utilisateur de corriger son erreur que de planter. C’est pourquoi, contrôler la saisie de l’utilisateur est important, cela permet d’éviter un bon nombre de sources d’erreurs. Par rapidité, dans les programmes qui tournent dans un terminal, on demande traditionnellement à l’utilisateur d’entrer une seule lettre : Y pour yes, et N pour No. Ainsi, l’algorithme suivant oblige l’utilisateur à entrer Oui ou Non, la boucle recommence s’il entre autres choses.
DÉBUT VARIABLE c: CARACTÈRE RÉPÉTER LIRE "Avez-vous plus de 18 ans? [Y/N]", c TANT QUE PAS (c=='Y' OU c=='N') ÉCRIRE "L'utilisateur a répondu: ", c FIN
Évaluer à une précision souhaitée
La fonction racine carrée utilisée dans les ordinateurs est issue des travaux de l’algorithme de Newton. L’expression est évaluée jusqu’à obtenir une précision équivalente à la précision maximale de la variable. L’algorithme est le suivant, où x0 peut être de n’importe quelle valeur approchée de la racine, mais plus cette valeur est proche, plus l’algorithme converge rapidement.
- \( x_{0}=1 \)
- \( x_{n+1}={\frac {x_{n}+{\frac {a}{x_{n}}}}{2}} \)
Si l’on développe cette série pour la racine carrée de deux, nous pouvons la voir converger très rapidement :
- \( x_{1}={\frac {1+2}2}={\frac 32}=1.5 \)
- \( x_2=\frac{3/2+4/3}2=\frac{17}{12}=1.4166\ldots \)
- \( x_{3}={\frac {17/12+24/17}2}={\frac {577}{408}}=1.4142156\ldots \)
- \( x_{4}={\frac {577/408+816/577}{2}}={\frac {665857}{470832}}=1.4142135623745\ldots \)
Lorsqu’on programme un tel algorithme, on peut calculer la précision jusqu’à ce qu’on obtienne un delta \( |X_{n} – X_{n-1}| \) plus petit que la précision que l’on souhaite obtenir. En d’autres mots, on effectue l’itération afin d’augmenter la précision tant que nous ne sommes pas suffisamment précis.
DÉBUT VARIABLE x0, x1, a: RÉEL CONSTANTE E←0.0000001 x1←1 LIRE "Entrez une valeur:", a RÉPÉTER x0<-x1 x1<-(x0 + (a/x0)) / 2.0 TANT QUE |x1 - x0| > E ÉCRIRE "La racine carrée vaut: ", x1 FIN