mariesixteen
Messages postés1Date d'inscriptiondimanche 27 novembre 2011StatutMembreDernière intervention27 novembre 2011
-
27 nov. 2011 à 20:29
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 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 .
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 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.