saisie=new BufferedReader(new InputStreamReader(System.in));
try {
do{
System.out.println("Note (<-1:sortie) ?");
tnote=saisie.readLine();
note=Integer.parseInt(tnote);
if(note>20) {
System.out.println("Erreur");
continue;
}
if(note>-1) System.out.println(note);
}while(note>-1);
}
catch(Exception excp) {
System.out.println("Erreur");
}
}
}
Notez bien attentivement la condition de sortie centrale : la note doit être supérieure ou égale à ­1 ET inférieure ou 
égale à 20 pour sortir de la saisie. Avec le "Tant que", la boucle continuait tant que la note était inférieure à  ­1 OU 
supérieure à 20. Une nuance, mais de taille. 
Ces nuances sont l’une des raisons qui font que des étudiants et des programmeurs, pourtant parfois chevronnés, s’y 
perdent.  C’est  aussi  l’une  des  raisons  qui  fait  que  la  boucle  "Répéter  …  jusqu’à" n’est  pas  présente  dans  certains 
langages comme le C ou Java. En Java cependant, vous trouvez une boucle équivalente au "Répéter … Tant Que", le 
"do … while", qui reprend le fait d’une itération obligatoire, mais avec les mêmes expressions booléennes que le "Tant 
Que" initial. 
2. Quelques exemples adaptés 
a. La factorielle 
Inutile de décrire à nouveau le principe. La boucle doit être quittée quand le compteur vaut 2. 
Variables cpt, resultat en Numérique
Début
Ecrire "Quelle factorielle ?"
Lire cpt
resultat←cpt 
Répéter 
cpt←cpt-1 
resultat←cpt*resultat 
Jusqu’à cpt=2 
Ecrire resultat 
Fin
b. Les trois boucles 
Là encore, même programme mais style différent. Notez que ici les compteurs partent de 0 afin d’être incrémentés en 
début de boucle, dans le but de rendre la condition de sortie plus lisible (égale à 10). 
Variables a,b,c,nb1,nb2 en Numérique 
Début 
a←0 
b←0 
c←0 
Répéter 
a←a+1 
Répéter 
b←b+1 
Répéter 
c←c+1 
nb1←a*100+b*10+c 
- 2 -
© ENI Editions - All rigths reserved - Jonifar lina
87
Précédent

- 87/220

Suivant