La répétition inconditionnelle
89
entier constant nbCarMax := 30
// nombre maximum de caractères lus
caractère c
// caractère courant
entier i
// compteur de caractères lus
i := 0
écrire «donnez un mot écrit en minuscules, terminé par un espace»
répéter
lire c
si c=’a’ ou c=’e’ ou c=’i’ ou c=’o’ ou c=’u’ ou c=’y’
alors écrire c
i := i + 1
jusqu’à c = ’ ’ ou i >= nbCarMax
donnez un mot, écrit en minuscules, terminé par un espace :
anticonstitutionnellement
aioiuioeee
Affichage des voyelles d’une suite d’au maximum 30 caractères
4.6 Un tour pour rien
Nous avons vu que nous pouvions utiliser une instruction telle que :
répéter pour i := 1 à n
ou encore :
répéter pour i := n à p
Que se passera-t-il dans le premier cas si n vaut 0. Que se passera-t-il dans le deuxième cas si
la valeur de p est inférieure à celle de n ? En fait, nous avons défini la répétition pour à partir
d’une répétition tant que. Ce qui signifie que dans les situations évoquées, on ne fera
aucun tour de boucle. Cependant, nous n’avons pas la garantie que tous les langages
procéderont ainsi. En particulier, certains langages (de plus en plus rares !) pourront utiliser
une formulation jusqu’à et considérer que :
répéter pour i := n à p
{ .....
// instructions à répéter
}
est équivalent à :
i := n
répéter
{ .....
// instructions à répéter
i := i + 1
}
jusqu’à i > p
Dans ce cas, vous voyez que avec n=5 et p=2, nous obtiendrions quand même un tour de
boucle, avec i valant 5.
Précédent

- 112/370

Suivant