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
Version imprimable
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
decris plus precisement le souci , poses nous concretement le probleme
++
sinon tu peut utilisé la boucle "for"
for (i=0; i<2; i++)
{
}
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.
au pire tu rajoute un compteur de sécurité a ta do while pour le faire sortir si il mouline trop
un truc dans ce genre la :)Code:
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
Bonjour,
A tout moment il est possible de sortir de la boucle For grâce à l'instruction break de la manière suivante :
Mais comme a dit devlopassion,la condition d'arrêt n'est jamais atteinte,c'est pour cela que ça boucle infiniment.Code:
1
2
3
4
5
6
7
8
9
10 for(i=0;i<max;i++) { ... if (COND) {break;} ... }
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.
un autre moyen de sortir d'une boucle for c'est de l'utiliser comme ça:
juste comme ça au cas ouCode:
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; } }
et pour faire un test avant de rentrer dans ta boucle:
Code:
1
2
3
4
5
6
7
8 if(condition pour rentrer dans la boucle) { for(int i = 0; i < max; i++) { // instructions } }
a++
Salut !
En global :
Donc le traitement :Code:
1
2 bool Flag = false;
Donc un bouton et dans sa OnClick :Code:
1
2
3
4
5
6
7
8 Flag = true; // on se met en boucle infinie while(Flag) { //... Application->ProcessMessages(); //... }
En fait, ici, il faut tenir compte du traitement pour placer au mieux la ProcessMessages.Code:
1
2Flag = false;
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 !