Probleme avec boucle while avec un char

Fermé
meli:0 Messages postés 1 Date d'inscription samedi 1 février 2014 Statut Membre Dernière intervention 1 février 2014 - 1 févr. 2014 à 05:23
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 1 févr. 2014 à 14:24
Bonjour,

j'ai un problème avec une boucle while. J'essaie de faire une boucle pour valider une reponse. Cependant je suis debutante et je ne comprend pas pourqui ce que j'ai fait ne fonctionne pas. Je me suis dit que c'etait peut etre a cause que le signe different de s'utilise differement avec un char mais je n'ai rien trouver sur internet. La premiere boucle est repeter sans arret meme si je met f ou F ou t ou T et j'ai essayer d'enlever cette boucle et le meme probleme m'arrive lorsque je suis a lautre boucle != avec le char choix ... SVP je suis extremement débutante donc des explication claire avec des mots clairs seraient appréciés Merci :)

while ( reponse != 'f' || reponse != 'F' || reponse != 't' || reponse != 'T' ){
System.out.println ( "Veuillez entrer un choix valide" );
System.out.println ( "Voulez-vous mettre fin au programme ou traiter une" +
" facture (Saisir f pour fermer ou t pour continuer)" );
reponse = Clavier.lireCharLn ();
}
while ( reponse == 't' || reponse == 'T' ){
while ( choix != 'O' || choix != 'o' || choix != 'n' || choix != 'N' ){
System.out.println ( "Veuillez entrer un choix valide" );
System.out.println ( "Voulez-vous entrer des informations sur d'autres" +
"vetements (Saisir o pour oui / n pour non)" );
choix = Clavier.lireCharLn ();
}
while ( choix == 'O' || choix == 'o' ){
System.out.println ( "CATEGORIES DE VETEMENTS" );
System.out.println ( "1- Pantalons" );

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
1 févr. 2014 à 14:24
C'est un problème de logique, tes conditions sont toujours vraies :

reponse != 'f' || reponse != 'F' || reponse != 't' || reponse != 'T'
choix != 'O' || choix != 'o' || choix != 'n' || choix != 'N'

Par exemple si la réponse est 'f' alors
reponse != 'f'
sera faux, mais
reponse != 'F'
sera vrai, et inversement si la réponse est 'F' alors
reponse != 'F'
sera faux, mais
reponse != 'f'
sera vrai. Donc dans tous les cas
reponse != 'f' || reponse != 'F'
sera vrai à cause du
||
.

Ce qu'il te faut ce ne sont pas des OU logiques, mais des ET logique.

reponse != 'f' && reponse != 'F' && reponse != 't' && reponse != 'T'
choix != 'O' && choix != 'o' && choix != 'n' && choix != 'N'
0