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++Builder Discussion :

la boucle while


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de hassiba_45
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    127
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 127
    Par défaut la boucle while
    salut à tous, dans mon application, j'utilise la boucle do.. while, mais l'application ne s'arrête pas c à d une boucle infinie,alors ce que je cherche c'est une boucle qui remplace do..while. j'utilise pour ça le C++ builder 6.
    et merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    decris plus precisement le souci , poses nous concretement le probleme
    ++

  3. #3
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut
    bonjour,
    - si l'application ne s'arrête pas, alors je croit qu'il y a un probleme dans les conditions d'arret. c'est pas un probleme dans la boucle elle meme.
    - vérifier les condition d'arret dans le While.

    Citation Envoyé par hassiba_45 Voir le message
    salut à tous, dans mon application, j'utilise la boucle do.. while, mais l'application ne s'arrête pas c à d une boucle infinie,alors ce que je cherche c'est une boucle qui remplace do..while. j'utilise pour ça le C++ builder 6.
    et merci

  4. #4
    Membre éclairé Avatar de devlopassion
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2006
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Août 2006
    Messages : 576
    Par défaut
    sinon tu peut utilisé la boucle "for"

    for (i=0; i<2; i++)
    {

    }

  5. #5
    Membre confirmé Avatar de hassiba_45
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    127
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 127
    Par défaut la boucle while
    salut à tous, merci pour vos réponse, je ne peux pas utiliser la boucle "for" par ce que je cherche que mon programme fait un test avant la boucle c à d il fait au moins une itération et je test sur une valeur booléenne.
    le code est très lent, je croix que je ne peut pas l'envoyer.
    merci encore une autre fois.

  6. #6
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    au pire tu rajoute un compteur de sécurité a ta do while pour le faire sortir si il mouline trop


    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
    16
    17
    18
     
      int iCompteurSecu = 0;
     
     
        do
        {
                 //code de la boucle
                 iCompteurSecu ++ ;
        }
        while(  .. tes  condition de sortie ..  || iCompteurSecu > 10000)
     
       if(iCompteurSecu > 10000)
       {
            ShowMessage("ereur pendant la boucle");
            return;
        }
     
       //suite du code
    un truc dans ce genre la

  7. #7
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut
    Bonjour,

    Citation Envoyé par hassiba_45 Voir le message
    je ne peux pas utiliser la boucle "for" par ce que je cherche que mon programme fait un test avant la boucle c à d il fait au moins une itération et je test sur une valeur booléenne..
    A tout moment il est possible de sortir de la boucle For grâce à l'instruction break de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for(i=0;i<max;i++)
    {
     
    ...
     
    if (COND) {break;}
     
    ...
    }
    Mais comme a dit devlopassion,la condition d'arrêt n'est jamais atteinte,c'est pour cela que ça boucle infiniment.
    Si vous utilisez un compteur que vous testez dans la condition assurez vous que vous l'avez bien incrémenter dans le corp de la boucle.

  8. #8
    Membre éclairé Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Par défaut
    Citation Envoyé par b_reda31 Voir le message
    Bonjour,



    A tout moment il est possible de sortir de la boucle For grâce à l'instruction break de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for(i=0;i<max;i++)
    {
     
    ...
     
    if (COND) {break;}
     
    ...
    }
    un autre moyen de sortir d'une boucle for c'est de l'utiliser comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    bool fin = false;
    for(int i = 0; i<max || fin; i++)
    {
         // instructions
         if(une condition pour sortir de la boucle)
         {
         fin = true;
         }
    }
    juste comme ça au cas ou

    et pour faire un test avant de rentrer dans ta boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(condition pour rentrer dans la boucle)
    {
         for(int i = 0; i < max; i++)
         {
              // instructions
         }
    }

    a++

  9. #9
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    En global :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bool Flag = false;
    Donc le traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Flag = true; // on se met en boucle infinie
    while(Flag)
        {
        //...
        Application->ProcessMessages();
        //...
        }
    Donc un bouton et dans sa OnClick :

    En fait, ici, il faut tenir compte du traitement pour placer au mieux la ProcessMessages.
    On peut éventuellement rajouter un compteur d'itérations ou bien un timer basé sur GetTickCount pour bien encadrer l'appel.
    Il faut tester pour rechercher le meilleur temps de réponse !

    A plus !

Discussions similaires

  1. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 16h35
  2. Boucle while & read
    Par gibet_b dans le forum Linux
    Réponses: 4
    Dernier message: 29/04/2005, 15h38
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

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