IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème C++ Boucle While


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Etudiants au collège
    Inscrit en
    Décembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiants au collège

    Informations forums :
    Inscription : Décembre 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Problème C++ Boucle While
    Bonjour tout le monde j'ai un petit problème en c++ avec la boucle while.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (choixDebut != "Enregistrer" || choixDebut != "Quitter" || choixDebut != "Chercher" )
        {
            cout << "Veuillez indiquez : Enregistrer ou Chercher ou Quitter" <<endl;
            cin >> choixDebut;
     
        }
    Voila alors je voudrais que tant que l'utilisateur n'a pas mis : "Enregistrer", "Chercher" ou "Quitter" il y ais la boucle.

    Le problème ?
    C'est le contraire ! Quand je met Chercher, Enregistrer ou Quitter la boucle continue mais quand je met n'importe quoi d'autre la boucle s'arrete.
    Je suis débutant et aimerais savoir comment régler ce problème .
    Merci d'avance.
    Meto.

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Comme l'opérateur != n'est pas implémenté pour les string je suppose que tu as fait le tien et que c'est là qu'est l'erreur...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par stendhal666 Voir le message
    Comme l'opérateur != n'est pas implémenté pour les string...
    heu... tu es sûr ? parce que ce n'est pas ce qui est indiqué ici : http://en.cppreference.com/w/cpp/str...g/operator_cmp

    @ Official_Meto : comme tu le dis toi-même, c'est le contraire donc mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (choixDebut != "Enregistrer" && choixDebut != "Quitter" && choixDebut != "Chercher" )

  4. #4
    Candidat au Club
    Homme Profil pro
    Etudiants au collège
    Inscrit en
    Décembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiants au collège

    Informations forums :
    Inscription : Décembre 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    stendhal j'ai pas trop compris j'ai que 13 ans x). "Implémenté" ??
    Merci groharpon ! Mais pourquoi mettre le "&&", car il ne faudrait pas écrire dans ce cas la : Enregistrer et Cacher et Quitter ???
    Merci à vous !

  5. #5
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par Official_Meto Voir le message
    stendhal j'ai pas trop compris j'ai que 13 ans x). "Implémenté" ??
    Merci groharpon ! Mais pourquoi mettre le "&&", car il ne faudrait pas écrire dans ce cas la : Enregistrer et Cacher et Quitter ???
    Merci à vous !
    Question de logique.

    Ce que tu as écrit, c’est :

    faire la boucle tant que :
    choixDebut ne vaut pas "Enregistrer" ou
    choixDebut ne vaut pas "Quitter" ou
    choixDebut ne vaut pas "Chercher"

    Que se passe-t-il si choixDebut vaut "Chercher" ?
    la première condition est vraie : choixDebut ne vaut pas "Enregistrer", donc on ne va pas plus loin (car ce sont des « ou », le fait qu’un seul soit vrai fait que la condition au global sera vraie) et on continue la boucle. Le fait qu’il vaille « Chercher » ne changera rien : c’est un ou.

    Pour te simplifier la compréhension, tu peux écrire ta condition sous la forme suivante, plus intuitive :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while( ! (choixDebut == "Enregistrer" || choixDebut == "Quitter" || choixDebut == "Chercher") )
    Qui peut se traduire par : faire la boucle tant qu’on n’a pas choixDebut égal à Enregistrer ou Quitter ou Chercher.

    Note : telle que tu l’as écrite, ta boucle devait continuer même si la valeur était « toto », contrairement à ce que tu as écrit

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dans ta boucle tu récupères le choix et tu dois faire çà tant que le choix n'est pas valide, c'est à dire tant que le choix est différent de "Enregistrer" et différent de "Quitter" et différent de "Chercher". Il faut donc mettre des "et" (&&) et non pas des "ou" (||).

    Ainsi tu sors de la boucle quand la condition est fausse, c'est à dire que le choix est l'un de ces 3 textes ("Enregistrer" ou "Quitter" ou "Chercher"), ce qui est bien ce que tu cherches à faire si j'ai bien compris.

  7. #7
    Candidat au Club
    Homme Profil pro
    Etudiants au collège
    Inscrit en
    Décembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiants au collège

    Informations forums :
    Inscription : Décembre 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos réponses !
    J'ai bien compris maintenant, mais donc la boucle continus tant que la condition est fausse c'est ça ?

  8. #8
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par Official_Meto Voir le message
    Merci pour vos réponses !
    J'ai bien compris maintenant, mais donc la boucle continus tant que la condition est fausse c'est ça ?
    Non, la boucle continue tant que l’expression évalue à vrai.

    Évalue à vrai, cela signifie dans le cas où on a entré la chaîne "toto" :

    choixDebut == "Enregistrer" --> FAUX
    choixDebut == "Quitter" --> FAUX
    choixDebut == "Chercher" --> FAUX

    FAUX ou FAUX ou FAUX --> FAUX.
    non FAUX --> VRAI ( ! est l’opérateur non).

    Donc la boucle va continuer puisque la condition évalue à vrai.

    Il est important que tu comprennes bien cette logique, et le comportement des opérateurs « non » (!), « et » (&&) et « ou » (||) pour écrire du code correct (ça concerne les boucles, mais aussi les conditions if.

  9. #9
    Candidat au Club
    Homme Profil pro
    Etudiants au collège
    Inscrit en
    Décembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiants au collège

    Informations forums :
    Inscription : Décembre 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci à toi ça commence à rentrer.
    Donc pour conclure Tant que la condition tésté seras vrai, la boucle continuera ?
    Désoler si je suis long à comprendre x).

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Une boucle ça se déroule.
    Si la condition est vraie, on y entre.
    On exécute le code à l'intérieur, puis on revient au test.
    S'il est vrai, on y entre.
    etc...
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  11. #11
    Candidat au Club
    Homme Profil pro
    Etudiants au collège
    Inscrit en
    Décembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Etudiants au collège

    Informations forums :
    Inscription : Décembre 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Ah la j'ai bien compris ! Merci à toi.

Discussions similaires

  1. Problème du boucle while en PHP
    Par kimpak dans le forum Langage
    Réponses: 6
    Dernier message: 11/08/2011, 13h28
  2. Problème de boucle while dans un popup
    Par drogba72 dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2009, 14h19
  3. [MySQL] Problème sur Boucle While après un LEFT JOIN
    Par matperino dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 28/05/2007, 17h43
  4. [MySQL] Problème de boucle while
    Par Justin_C dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/12/2006, 19h16
  5. [MySQL] Problème de boucle while sur base de données
    Par Darhyl dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/05/2006, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo