Si note<-1 ou note>20 Alors
Tant que note<-1 ou note>20 Faire
Ecrire “Erreur (0->20, -1 sortie) :"
Lire note
FinTantQue
FinSi
Si note=-1 Alors
break
FinSi
FinTantQue
Fin
Ce qui donne en Java :
import java.io.*;
class chap4_note2 {
public static void main(String[] args) {
String tnote;
int note;
BufferedReader saisie;
saisie=new BufferedReader(new InputStreamReader(System.in));
try {
while(true) {
System.out.println("Note (<-1:sortie) ?");
tnote=saisie.readLine();
note=Integer.parseInt(tnote);
if(note>20)
while(note<-1 || note>20) {
System.out.println("Erreur ! Note (-1:sortie) ?");
tnote=saisie.readLine();
note=Integer.parseInt(tnote);
}
}
if(note==-1) break;
System.out.println(note);
}
}
catch(Exception excp) {
System.out.println("Erreur");
}
}
}
Il est encore possible d’aller plus loin en Java avec l’instruction continue. En effet plutôt que de créer une nouvelle
boucle en cas d’erreur de saisie, pourquoi ne pas relancer celleci au début ?
Le bloc central d’instructions devient donc :
while(true) {
System.out.println("Note (<-1:sortie) ?");
tnote=saisie.readLine();
note=Integer.parseInt(tnote);
if(note>20) {
System.out.println("Erreur");
continue;
}
if(note==-1) break;
System.out.println(note);
}
Comme vous pouvez le constater cet algorithme est un peu plus court que l’original, avec notamment une saisie en
moins, une expression booléenne en moins (dans la condition de la première boucle), un "sinon" en moins.
Cependant fondamentalement cet algorithme est moins propre. Comme indiqué précédemment, le break est en
principe déconseillé, et il vaut mieux que la boucle ellemême ait une condition de sortie afin d’éviter une catastrophe
en cas de modification du bloc d’instructions qu’elle contient. Il faut maintenant compléter l’algorithme d’origine pour y
rajouter nos variables :
- 8 -
© ENI Editions - All rigths reserved - Jonifar lina
80
Tant que note<-1 ou note>20 Faire
Ecrire “Erreur (0->20, -1 sortie) :"
Lire note
FinTantQue
FinSi
Si note=-1 Alors
break
FinSi
FinTantQue
Fin
Ce qui donne en Java :
import java.io.*;
class chap4_note2 {
public static void main(String[] args) {
String tnote;
int note;
BufferedReader saisie;
saisie=new BufferedReader(new InputStreamReader(System.in));
try {
while(true) {
System.out.println("Note (<-1:sortie) ?");
tnote=saisie.readLine();
note=Integer.parseInt(tnote);
if(note>20)
while(note<-1 || note>20) {
System.out.println("Erreur ! Note (-1:sortie) ?");
tnote=saisie.readLine();
note=Integer.parseInt(tnote);
}
}
if(note==-1) break;
System.out.println(note);
}
}
catch(Exception excp) {
System.out.println("Erreur");
}
}
}
Il est encore possible d’aller plus loin en Java avec l’instruction continue. En effet plutôt que de créer une nouvelle
boucle en cas d’erreur de saisie, pourquoi ne pas relancer celleci au début ?
Le bloc central d’instructions devient donc :
while(true) {
System.out.println("Note (<-1:sortie) ?");
tnote=saisie.readLine();
note=Integer.parseInt(tnote);
if(note>20) {
System.out.println("Erreur");
continue;
}
if(note==-1) break;
System.out.println(note);
}
Comme vous pouvez le constater cet algorithme est un peu plus court que l’original, avec notamment une saisie en
moins, une expression booléenne en moins (dans la condition de la première boucle), un "sinon" en moins.
Cependant fondamentalement cet algorithme est moins propre. Comme indiqué précédemment, le break est en
principe déconseillé, et il vaut mieux que la boucle ellemême ait une condition de sortie afin d’éviter une catastrophe
en cas de modification du bloc d’instructions qu’elle contient. Il faut maintenant compléter l’algorithme d’origine pour y
rajouter nos variables :
- 8 -
© ENI Editions - All rigths reserved - Jonifar lina
80
