Algorithmique impérative/Itération
Les structures de contrôle itératives permettent d'exécuter plusieurs fois de suite une ou plusieurs instructions. Il en existe trois distinctes.
Structure POURModifier
La structure POUR permet d'exécuter une instruction un nombre connu de fois. Voici la syntaxe :
POUR i DE deb A fin FAIRE instruction FINPOUR
i
est l'identifiant d'une variable (qui doit bien sûr être déclarée).
deb
et fin
sont deux expressions de même type que i
: ce sont les valeurs entre lesquelles i va parcourir l'ensemble des valeurs intermédiaires.
La structure s'exécute de la façon suivante :
i
est affecté à la valeur dedeb
(i←deb
)- si
i
est différent defin
alors on exécuteinstruction
- incrémenter
i
(i←i+1
) - revenir au point 2
Il est évident que pour que le programme fonctionne deb
<fin
.
ExemplesModifier
Dix itérationsModifier
Lexique i : entier Début POUR i de 1 à 10 FAIRE Afficher(i); FINPOUR FIN
Ce programme va afficher :
1 2 3 4 5 6 7 8 9 10
Structure TANTQUEModifier
TANTQUE condition instruction FINTANTQUE
condition
est une expression booléenne, comme dans la structure SI condition ALORS...
Cette structure est exécutée comme suit :
- si
condition
est vraie : exécuterinstruction
sinon, continuer aprèsFINTANTQUE
- reprendre au point 1
La boucle infinieModifier
Il est possible grâce à cette structure de créer une boucle infinie :
TANTQUE VRAI instruction FTQ
Une boucle POURModifier
Il est possible de simuler une boucle POUR
à l'aide d'un TANTQUE
i←deb TANTQUE i <= fin instruction i←i+1 FTQ
ExemplesModifier
Structure REPETERModifier
REPETER instruction JUSQU'A condition
condition
est une expression booléenne.
Cette structure s'exécute comme suit :
- exécuter
instruction
- si
condition
est vrai : continuer au point 3 sinon, reprendre au point 1 - exécuter ce qui suit le
JUSQU'A
La boucle infinieModifier
Il est possible grâce à cette structure de créer une boucle infinie :
REPETER instruction JUSQU'A FAUX
Une boucle POURModifier
Il est possible de simuler une boucle POUR
à l'aide d'un REPETER
i←deb REPETER instuction i←i+1 JUSQU'A i=fin
ExemplesModifier
Comment déterminer la structure à utiliser ?Modifier
Le choix de la structure de contrôle se fait en fonction du nombre d'itérations à effectuer :
- si le nombre d'itérations est déterminé à l'avance, une boucle POUR est la plus appropriée,
- sinon :
- si la condition de boucle ne peut être évaluée avant la première itération, ou si au moins une itération doit être exécutée, la boucle REPETER est la plus appropriée,
- sinon la boucle TANT QUE est la plus appropriée.