Je suis complètement nouveau à la programmation et j'ai fait face à un problème, où je ne peux pas retourner à mon principal faire tandis que la boucle quand j'attrape InputMismatchException. J'ai cherché Google et je ne peux pas trouver et comprendre pleinement les solutions qui sont données par les utilisateurs.Comment prolonger faire ... tout en boucle après Exception attraper
Mon but est d'éliminer la possibilité pour les utilisateurs d'entrer des caractères qui pourraient provoquer l'arrêt de l'application. C'est pourquoi j'ai entouré presque tout le code avec try/catch.
J'ai essayé de mettre plusieurs boucles à mon code et cela se termine de 2 façons:
- Ma boucle se termine jamais après avoir atteint catch.
- Je suis remis à la console et rien ne se passe (je peux toujours taper là-bas).
Quelqu'un pourrait-il m'expliquer comment atteindre mon objectif? J'ai aussi essayé hasNextInt en espérant qu'il me demandera à nouveau d'entrer une valeur correcte mais ce n'est pas le cas. Qu'est-ce que je fais mal? J'ai débogué l'application et ce que je peux voir est que la procédure est sautée de jusqu'à la fin de mon code.
Scanner scanner = new Scanner(System.in);
System.out.print("\nChoose mode: ");
int userInput = 0;
do {
do {
try {
userInput = scanner.nextInt();
switch (userInput) {
case 1:
Mode_1.multiplyTwoInteger();
break;
case 2:
Mode_2.multiplyTwoSpecifiedValues();
break;
case 3:
System.out.println("\nYou quit application. Goodbye :)");
return;
default:
System.out.print("Not found! Choose again game mode: ");
}
} catch (Exception InputMismatchException) {
System.out.print("Wrong input!\nChoose again:");
}
} while (userInput <= 0 || userInput > 3);
} while (userInput != 3);
C'est des connaissances nouvelles pour moi. Je ne savais pas que ça fonctionnait de cette façon. Merci beaucoup pour votre solution. – Ahlen