Erreur de saisier dans un menu

mariesixteen Messages postés 1 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 - 27 nov. 2011 à 20:29
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 28 nov. 2011 à 08:22
bonsoir,

Je code actuellement une application permettant de créer des réseaux de neurones.
J'ai un problème dans le menu de cette application. J'ai écrit :

Scanner sc0 = new Scanner(System.in);

System.out.println("Rentrer le numéro correspondant à la fonctionnalité voulue:");
System.out.println("1: créer un nouveau réseau (phase d'apprentissage)");
System.out.println("2: tester un réseau");
System.out.println("3: administrer l'application");

int reponse0 = sc0.nextInt();

la réponse attendue est donc un entier. Je ne sais pas comment faire si l'utilisateur se trompe et ne rentre pas un entier. Je pensais combiner un while avec instanceof mais dans ce cas je dois définir (enfin il me semble) reponse0 comme un Object et je ne peux alors pas utiliser de switch case.
Une possible solution serait de relancer le menu à chaque erreur de frappe de l'utilisateur mais ce n'est pas optimal comme solution au vu du nombre de cas possibles .

Auriez-vous une solution ?
Merci.

1 réponse

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
28 nov. 2011 à 08:22
Bonjour,

Tu as pluisieurs possibilités : soit tu testes que ce qui est entré est bien un nombre (1 2 ou 3) tu peux utiliser la regex "[1-3]". Mais ce n'est pas une bonne idée. Soit tu catch les exceptions qui posent problème en cas d'erreur.

La meilleure idée est de récupérer un String et de faire un if(string.equals("1) ... et à la fin de mettre un else qui prend tous les autres cas et qui réaffiche le menu avec un message indiquant que le choix est impossible.
0