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 Boucle Do-While?!


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut Problème Boucle Do-While?!
    Bonjour à tous,
    Ca peut parraître bête mais j'ai un prob dans une boucle ^^.
    Son but est de déplacer une pièce du jeu vers la droite tant qu'elle ne rencontre pas d'autres pièces (du même joueur ou du joueur adverse).
    Mais le problème se base surtout sur la condition de sortie de la boucle.
    Quand x>x2 la boucle devrait s'arrêter sans dépendre de l'autre condition d'après les termes "||"...

    Si vous pouviez me dire ce qui ne va pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    void CChess::TurnRight(TPaintBox *pBox,TForm1 *Form, CChess *Chess, int x2, int y2)
    {
    int x=Chess->m_x;
            if ((Chess->m_x<x2)&&(Chess->m_y==y2))
            {
                    do{
                            x+=30;
                           Chess->m_x=x;
                           void __fastcall PFPaint(TObject *Sender);
                    }while((x<=x2)||(Chess->Take(Chess,Chess->m_x,Chess->m_y)==0));
     
                    if (Chess->Take(Chess,Chess->m_x,Chess->m_y)==1)
                    {x-=30; Chess->m_x=x;}
            }
    }

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu as regardé ce qui se passait au débuggeur ?

  3. #3
    En attente de confirmation mail
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 123
    Points : 82
    Points
    82
    Par défaut
    || c'est un "ou",non?
    je me trompe peut être mais si la deuxième condition est remplie, ta boucle continue... puisque c'est l'une ou l'autre. Si tu veux eviter cela met un "et" ( &&), de cette façon les deux conditions doivent être vrai pour que ta boucle continue.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut
    La boucle tourne indéfiniment...
    Les conditions de la boucle sont comme inexploitées

    pour les "||" ca signifie "ou, et", en gros il faut qu'il y est l'une ou les deux conditions remplies
    J'ai bien remarqué avec le déboggueur que avec x=60 et x2=30 la boucle ne s'arrête meme pas !

  5. #5
    En attente de confirmation mail
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 123
    Points : 82
    Points
    82
    Par défaut
    essaye un &&

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Comme le dit tiboo, si x>x2, la deuxième condition va être testée, donc c'est pas ce que tu veux, donc tu n'as sans doute pas regardé correctement l'état de tes variables au débuggeur.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut
    Vous aviez raison ^^,
    Si l'une des conditions n'est pas remplie, on sort de la boucle...
    Erreur de logique
    Merci ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Problème boucle Do While avec MyArray() aux tours suivants
    Par Wynelle dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/06/2015, 09h54
  2. Problème avec variable dans boucle DO WHILE
    Par bandit_debutant dans le forum Langage
    Réponses: 13
    Dernier message: 25/02/2008, 16h34
  3. [MySQL] Problème boucle WHILE
    Par Adlack dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/02/2007, 19h30
  4. Problème de boucle do..while
    Par chental dans le forum C
    Réponses: 12
    Dernier message: 02/08/2006, 19h26
  5. Problème boucle while et evenement
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 30/03/2006, 18h11

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