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 POUR
modifierLa 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
.
Exemples
modifierDix itérations
modifierLexique 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 TANTQUE
modifierTANTQUE 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 infinie
modifierIl est possible grâce à cette structure de créer une boucle infinie :
TANTQUE VRAI instruction FTQ
Une boucle POUR
modifierIl est possible de simuler une boucle POUR
à l'aide d'un TANTQUE
i←deb TANTQUE i <= fin instruction i←i+1 FTQ
Exemples
modifierStructure REPETER
modifierREPETER 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 infinie
modifierIl est possible grâce à cette structure de créer une boucle infinie :
REPETER instruction JUSQU'A FAUX
Une boucle POUR
modifierIl est possible de simuler une boucle POUR
à l'aide d'un REPETER
i←deb REPETER instuction i←i+1 JUSQU'A i=fin
Exemples
modifierComment déterminer la structure à utiliser ?
modifierLe 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.