Problème d'une boucle

Résolu/Fermé
ismail-aikido Messages postés 48 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 7 novembre 2015 - 6 août 2013 à 19:59
ismail-aikido Messages postés 48 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 7 novembre 2015 - 7 août 2013 à 15:29
salut!
mon problème est que je ne peux pas sortir de cette boucle , pourquoi ?
http://www.lexode.com/album/photos/i/s/ismail-ka/137581184881.png

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
6 août 2013 à 22:21
La boucle continue tant que MDP != 16 OU MDP != 14 etc.
Dis autrement, pour sortir de ta boucle, il faut entrer un nombre qui vaut 16 ET 14 à la fois...
Bref, pour corriger, il faut remplacer les OU (||) par des ET (&&).
Et rajoute avant ta boucle for : printf("entrer MDP"); scanf("%d",&MDP); (en plus du printf et scanf dans ton for). Cela évitera que le programme affiche "mot de passe incorrect" sans que l'utilisateur n'ait tapé son code.
Cdlt,
0
ismail-aikido Messages postés 48 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 7 novembre 2015
7 août 2013 à 03:58
merci beaucoup ;)
0
ismail-aikido Messages postés 48 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 7 novembre 2015
7 août 2013 à 14:27
fiddy , stp je n'ai pas bien compris ça
https://forums.commentcamarche.net/forum/affich-37622077-langage-c-les-operateurs#les-operateurs-logiques-booleens
regarde le tableau de Les opérateurs logiques (booléens) , il dis que || signifier OU et && signifier ET mais toi tu m'a dis la contraire et j'ai trouvé que tu as raison
tu peux me comprendre ça stp !!
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 août 2013 à 15:22
il dis que || signifier OU et && signifier ET mais toi tu m'a dis la contraire
Non je n'ai pas dit le contraire. OU se traduit par || et ET par &&.
Ce que j'ai dit c'est que dans ta boucle while tu as mis : while (MDP!=16 OU MDP != 14 ...) alors qu'il faut mettre : while (MDP != 16 ET MDP != 14).
La boucle doit continuer tant que MDP est différent de 16 ET différent de 14.
C'est de la logique booléenne.
0
ismail-aikido Messages postés 48 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 7 novembre 2015
7 août 2013 à 15:29
merci beaucoup fiddy <3
j'ai compris maintenant ;)
0