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 celle­ci 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 elle­mê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
Précédent

- 80/220

Suivant