calcul complexe devant retourner une précision particulière, un nombre de tours dans un jeu (le premier qui gagne sort 
de la boucle), etc. 
4. Un piège à éviter 
Tout comme il faut éviter les boucles infinies (sauf si c’est parfaitement volontaire), il faut aussi éviter quelques erreurs 
qui peuvent se révéler très surprenantes selon le cas (rappelez­vous la Loi de Murphy). Voici un exemple de ce qu’il ne 
faut pas faire : 
Variable x en Numérique 
Début 
Pour x allant de 1 à 31 Faire 
Ecrire x 
x←x*2 
Fin Pour 
Fin
L’erreur (sauf si c’est ce que vous vouliez explicitement, ce qui s’appelle jouer avec le feu) est de modifier vous­même 
le compteur utilisé par la boucle au sein même de cette boucle. Que se passe­t­il dans cet exemple ? Vous passez de 1 
à 2, puis … Quoi ? 3 ? 6 ? 7 ? 14 ? Ca devient n’importe quoi, et aucun nombre d’itérations ne peut être prévu. Vous ne 
savez plus quand vous allez sortir de la boucle, ni même la nouvelle valeur du compteur à chaque itération. Selon les 
langages, vous aurez au mieux un fonctionnement à peu près conforme à ce que vous attendiez, au pire du grand 
n’importe quoi. Or en informatique, sauf à travailler pour un éditeur peu scrupuleux sur la qualité, un "à peu près" est 
inacceptable. 
  Ne  modifiez  jamais  un  compteur  de  boucle  "Pour"  au  sein  de  celle­ci.  Si  cela  s’avère  vraiment  nécessaire, 
modifiez votre boucle pour utiliser une structure "Tant Que" ou "Répéter". 
5. Quelques exemples 
a. De nouveau trois boucles 
Promis à devenir un grand classique, puisque c’est la troisième fois que vous le voyez sous trois formes différentes 
donc, voici l’exemple des trois boucles, preuve s’il en est que le "Pour … Fin Pour" est bien pratique mais totalement 
optionnel. L’intérêt est évidemment ici de produire un code plus succinct et encore plus lisible. 
Variables a,b,c,nb1,nb2 en Numérique 
Début 
Pour a de 1 à 10 Faire 
Pour b de 1 à 10 Faire 
Pour c de 1 à 10 Faire 
nb1←a*100+b*10+c 
nb2←a³+b³+c³ 
Si nb1=nb2 Alors 
Ecrire nb1,a,b,c 
FinSI 
Fin Pour 
Fin Pour 
Fin Pour 
Fin
Ce qui en Java donne : 
class troisboucles { 
public static void main(String[] args) {  
double x,y,z,nb1,nb2; 
 
for(x=1;x<=10;x++) { 
for(y=1;y<=10;y++) { 
for(z=1;z<=10;z++) { 
nb1=x*100+y*10+z; 
 
- 2 -
© ENI Editions - All rigths reserved - Jonifar lina
90
Précédent

- 90/220

Suivant