Erreur de logique avec do while switch
Bonjour,
j'ai besoin d'un coup de pouce pour finir mon prog, je n'obtiens pas ce que je pensais.
J'ai fais un menu de 1 à 7: quand l'utilsateur tape 7 c'est pour quitter mais je voudrais lui demander juste avant de quitter:
SI il reste des fenêtres ouvertes
SI il veut les sauvegarder
SI oui aller à la case 6
SI NON quitter en fermant sans enregistrer
Le oui fonctionne mais le Non ne fonctionne pas, le prog se bloque, il se passe rien après la saisi.
Merci d'avance
j'ai fait une methode pour quitter:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public int quitterImage(){
if(this.mesImagesCrees.length !=0 || this.mesImagesLues.length !=0){ //il reste des fenêtres ouvertes
System.out.println("Il reste des images ouvertes!");
System.out.print("Voulez_vous quitter sans enregistrer(O/N)?");
char rep=sc.nextLine();
rep=Character.toUpperCase(rep);
if(rep!='O'){
return 6; //aller a la case 6 sauvegarde
}
}
return 7;
} |
mon main simplifié
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| do{
try{
choix= menuUtilisateur.afficherChoisir();//affiche le menu
switch(choix){
case 1: System.out.print("nom du fichier à ouvrir:");
break;
case 2:System.out.print("fermer");
break;
case 3:System.out.print("creer");
break;
case 4:System.out.print("incruster une image");
break;
case 5:System.out.print("traiter une image");
break;
case 6:System.out.print("sauvegarder");
break;
}//switch
}//try
catch (ChoixIncorrect e){
Terminal.ecrireStringln("Attention mauvaise saisi, recommencez!");
}
}
while(choix!=7);
if(MaCollection.quitterImage()!=7)
choix= 6; //je vais a la sauvegarde
else{
choix= 7; //je quitte pour de bon
try{
MaCollection.fermerTout();
}
catch(BitmapAbscent e){
}
System.out.print("A bientôt");
}
}//main |