Aide problème boucle while JAVA IntelliJ
Résolu
JL12
-
AssassinTourist Messages postés 6029 Date d'inscription Statut Contributeur Dernière intervention -
AssassinTourist Messages postés 6029 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis entrain de faire un projet sur IntelliJ (débutant), où l'utilisateur doit rentrer A,B ou C (il faut le valider l'entrée et la lettre peut être en majuscule ou en minuscule). Si n'importe quelle autre lettre est entrée alors un message d'erreur doit s'afficher. Le problème est que maintenant peu importe la lettre entrée le message d'erreur s'affiche, et ce même s'il fait partie des choix qui sont valides.
J'apprécierais énormément si quelqu'un pourrait m'aider,
Merci
Je suis entrain de faire un projet sur IntelliJ (débutant), où l'utilisateur doit rentrer A,B ou C (il faut le valider l'entrée et la lettre peut être en majuscule ou en minuscule). Si n'importe quelle autre lettre est entrée alors un message d'erreur doit s'afficher. Le problème est que maintenant peu importe la lettre entrée le message d'erreur s'affiche, et ce même s'il fait partie des choix qui sont valides.
while ((choixLavage != (char) 65) || (choixLavage != (char) 66) || (choixLavage != (char) 67) || (choixLavage != (char) 97) || (choixLavage != (char) 98) || (choixLavage != (char) 99)) { System.out.println ( MSG_ERREUR_LAVAGE ); System.out.println ( CHOIX_LAVAGE_VOITURE_1 ); choixLavage = Clavier.lireCharLn (); }
J'apprécierais énormément si quelqu'un pourrait m'aider,
Merci
A voir également:
- Aide problème boucle while JAVA IntelliJ
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Bonjour,
Déjà pour simplifier la lecture du code, il n'y a aucun intérêt à mettre
Quant à ton problème c'est de la logique.
Tu as dis que "tant que ce n'est pas A ou que ce n'est pas B... alors on affiche une erreur"
Donc si ce n'est pas A c'est une erreur et si c'est A c'est une erreur aussi car A ce n'est pas B...
Il faudrait dire "tant que ce n'est pas A et que ce n'est pas B... alors on affiche une erreur"
Tu dois donc remplacer tes
Une manière encore plus lisible est d'utiliser un String qui contient tous tes caractères à tester :
Déjà pour simplifier la lecture du code, il n'y a aucun intérêt à mettre
(char) 65, tu devrais mettre directement
'A'et ainsi de suite pour les autres valeurs.
Quant à ton problème c'est de la logique.
Tu as dis que "tant que ce n'est pas A ou que ce n'est pas B... alors on affiche une erreur"
Donc si ce n'est pas A c'est une erreur et si c'est A c'est une erreur aussi car A ce n'est pas B...
Il faudrait dire "tant que ce n'est pas A et que ce n'est pas B... alors on affiche une erreur"
Tu dois donc remplacer tes
||par des
&&pour que ça ait du sens.
if (choixLavage != 'A' && choixLavage != 'B' && choixLavage != 'C' && choixLavage != 'a' && choixLavage != 'b' && choixLavage != 'c')
Une manière encore plus lisible est d'utiliser un String qui contient tous tes caractères à tester :
if ("ABCabc".indexOf(choixLavage) == -1)
JL12
Merci beaucoup!