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
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
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
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,
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,
7 août 2013 à 03:58
7 août 2013 à 14:27
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 !!
7 août 2013 à 15:22
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.
7 août 2013 à 15:29
j'ai compris maintenant ;)