Bouclage infini avec utilisation d'un try catch et classe Scanner
Bonjour,
J'ai un problème de bouclage infini quand j'utilise un try catch pour récupéré une exception levée et la classe Scanner et je ne comprends pas pourquoi. Si quelqu'un pouvait m'expliquer mon erreur ou me dire pourquoi ça boucle à l'infini quand je saisi un caractère ça m'aiderai à mieux comprendre les exceptions.
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
|
public int afficher() {
Scanner objSaisie = new Scanner(System.in);
int choix = 0, cpt = 0;
boolean boolErreur;
do {
if (cpt > 0) {
System.out.println("\nSaisissez un nombre entre [1;3]\n");
}
try {
boolErreur = false;
choix = objSaisie.nextInt();
} catch (InputMismatchException e) {
boolErreur = true;
System.out.println("\nErreur levée "+ e.getMessage() +"\n");
}
cpt++;
} while (choix < 1 || choix > 3 || boolErreur == true);
return choix;
} |
P.S : Quand je saisi un entier tout fonctionne nickel, sinon dés que je saisi un double ou Une String ça boucle à l'infinie.
Merci d'avance pour vos réponses, cordialement Alino.