REPEAT |
Répétition |
|---|---|
| Pascal | |
Syntaxe
|
Repeat instr1; instr2; ... instrn Until expbool; |
Paramètres
| Nom | Description |
|---|---|
| instr1, instr2, instrn | Ce paramètre permet d'indiquer les instructions a exécuter à l'intérieur de la boucle à chaque fois qu'elle est effectué |
| expbool | Ce paramètre permet d'indiquer une expression vrai pour pouvoir terminer la boucle sinon elle recommence au début |
Description
Ce mot réservé permet d'effectuer des boucles d'instructions à répétition tant que la condition n'est pas vrai. La condition, aussi appelé expression de contrôle de répétition, doit être d'un type de données booléenne. La séquence d'instructions entre les mots réservés Repeat et Until est répétée (et au moins une fois) exécutée jusqu'à ce que l'expression devienne vraie.
Remarques
- La boucle REPEAT...UNTIL exécute toujours au moins une fois les instructions qu'elle contient. C'est une boucle post-conditionnelle, c'est-à-dire que la condition est évaluée après l'exécution du bloc. Elle est idéale lorsque l'on souhaite garantir une exécution initiale.
- L'expression conditionnelle expbool est de type booléen et met fin à la boucle quand elle devient vraie. Autrement dit, la répétition continue tant que cette condition reste fausse. C'est l'opposé de la logique des boucles while, s'arrêtant quand la condition devient fausse.
- Aucune accolade ou mot clef de fin n'est nécessaire après Until, car la structure de la boucle est implicite. Cela rend la syntaxe plus concise, mais il faut faire attention à bien écrire chaque instruction avant la condition. Les erreurs d'oubli de point-virgule sont courantes ici.
- Cette structure est particulièrement adaptée aux situations interactives ou répétitions incertaines. Par exemple, elle convient bien à la saisie utilisateur, où l'on répète une action jusqu'à obtenir une entrée valide. On peut y placer des validations, tests ou affichages à répéter.
- Il est possible d'avoir plusieurs instructions dans le bloc sans utiliser Begin et End. Contrairement à d'autres structures (comme If), Repeat accepte directement une suite d'instructions. Cela la rend plus souple mais aussi plus propice aux erreurs si la lisibilité est négligée.
- Les variables modifiées dans la boucle peuvent influencer l'évaluation de expbool. Il est donc important de s'assurer qu'il existe une condition de sortie atteignable. Sinon, la boucle pourrait devenir infinie, bloquant l'exécution du programme.
- Comme la condition est évaluée après l'exécution du bloc, l'ordre des instructions peut être critique. Un test mal positionné ou une variable mal initialisée peut retarder la sortie de boucle. Il est donc crucial de bien organiser les instructions internes.
- Bien que plus rare que la boucle While, la boucle Repeat est très lisible pour exprimer des intentions claires. Elle reflète souvent une logique naturelle?: "faire cela jusqu'à ce que...". Elle est un excellent outil pour les cas où l'on veut une exécution garantie initialement.
Dernière mise à jour : Mardi, le 25 octobre 2016