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
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
