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 :

que fait une boucle for


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 94
    Points : 66
    Points
    66
    Par défaut que fait une boucle for
    petit test interessant :

    que fait le bout de code suivant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int x=0; x=3; x++);

  2. #2
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour

    Ta boucle se contente de prendre le temps processeur nésseçaire pour vérifier que 0 n'est pas égal à 3 et est totalement inutile.
    De même, ton message est probablement assez inutile aussi vu que tu aurais pu le vérifier en prenant la peine de taper ça dans ton compilateur.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 94
    Points : 66
    Points
    66
    Par défaut
    j'ai pris la peine de le faire. j'aurais du poser ma question autrement désolé

  4. #4
    screetch
    Invité(e)
    Par défaut
    tel que c'est ecrit la c'est une boucle infinie qui initialise x a 0, et tant que le resultat de l'affectation de 3 a x est vrai (ce qui est toujours vrai puisque le resultat de x = 3 est 3) incremente x.
    il y a sans doute une erreur de recopie quelque part

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 94
    Points : 66
    Points
    66
    Par défaut
    merci screetch

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    C'est une boucle infinie :
    Avec comme valeur pour X
    0 a l'initialisation
    3 dans le test/affectation x = 3
    4 dans le troisième argument du for
    3
    4
    3
    4
    3
    4
    ....
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par screetch Voir le message
    tel que c'est ecrit la c'est une boucle infinie qui initialise x a 0, et tant que le resultat de l'affectation de 3 a x est vrai (ce qui est toujours vrai puisque le resultat de x = 3 est 3) incremente x.
    il y a sans doute une erreur de recopie quelque part
    oups, je fatigue moi ... je ne différencie plus les = des == -_-'

    désolé Elay, mais je dois avouer que je ne vois toujours pas l'interet de la question
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 94
    Points : 66
    Points
    66
    Par défaut
    l'intérêt c'est de savoir si les gens différencient les = des ==

  9. #9
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Citation Envoyé par Elay Voir le message
    l'intérêt c'est de savoir si les gens différencient les = des ==
    Woah.

    Tu sais que la différence est quand même très très grosse ?
    Ces 2 opérateurs n'ont aucun lien sémantique, le premier est un opérateur d'affectation et le second un opérateur de comparaison.

    Je ne vois pas où tu veux en venir...

    Tu te demandes combien de gens sont assez idiot que pour pouvoir faire l'erreur ?

    À part des débutants et des gens revenus sur le C++ après avoir fait un très long voyage en Pascal (ou autre langage où le = est un opérateur de comparaison), je vois pas qui pourrait tomber dans le piège. Ce n'est même pas un piège, en réalité.

    'fin bref, désolé, mais je prend ton post comme un foutage de gueule.

    (et je crois être correct lorsque je dis que je pense que si mephistoph est tombé dans ton "piège", c'est uniquement parce qu'il pensait répondre à ta question initiale, qui est "que fait une boucle for" sans forcément faire attention à la syntaxe de ton code, ce qui peut arriver à tout le monde, quand on pense que les gens sont sérieux)

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 94
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par JulienDuSud Voir le message
    Woah.

    Tu sais que la différence est quand même très très grosse ?
    Ces 2 opérateurs n'ont aucun lien sémantique, le premier est un opérateur d'affectation et le second un opérateur de comparaison.

    Je ne vois pas où tu veux en venir...

    Tu te demandes combien de gens sont assez idiot que pour pouvoir faire l'erreur ?

    À part des débutants et des gens revenus sur le C++ après avoir fait un très long voyage en Pascal (ou autre langage où le = est un opérateur de comparaison), je vois pas qui pourrait tomber dans le piège. Ce n'est même pas un piège, en réalité.

    'fin bref, désolé, mais je prend ton post comme un foutage de gueule.

    (et je crois être correct lorsque je dis que je pense que si mephistoph est tombé dans ton "piège", c'est uniquement parce qu'il pensait répondre à ta question initiale, qui est "que fait une boucle for" sans forcément faire attention à la syntaxe de ton code, ce qui peut arriver à tout le monde, quand on pense que les gens sont sérieux)
    pas de soucis. je ne disais pas ça dans le but de me moquer de quique se soit. J'aurais été le premier à faire l'erreur.
    En fait pour la petite histoire j'ai trouvé cette ligne de code dans un test de recrutement. J'ai trouvé cela interessant car souvent on écrit un for par automatisme sans se rappeler exactement de la signification de chaque champs.
    Encore une fois ne m'en veuillez pas.

  11. #11
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par JulienDuSud Voir le message
    Tu te demandes combien de gens sont assez idiot que pour pouvoir faire l'erreur ?
    C'est une erreur très courante y compris chez des gens pas idiot pour 2 sous . Tout comme les erreurs d'orthographes. Cette erreur quoique courante est de celle détectée immédiatement ou presque en test U.

  12. #12
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    C'est une erreur très courante y compris chez des gens pas idiot pour 2 sous . Tout comme les erreurs d'orthographes. Cette erreur quoique courante est de celle détectée immédiatement ou presque en test U.
    Oui bien sûr, comme n'importe quelle erreur d'inattention

    Ce que je veux dire, c'est être sérieux en demandant ce que la boucle fait, comme s'il y avait un piège caché...

  13. #13
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    D'ailleurs j'ai souvent vu employer l'écriture :
    pour avoir une erreur en cas d'écriture de

  14. #14
    screetch
    Invité(e)
    Par défaut
    genre
    moi je voulais montrer un vieux bout de code qui nous a bien fait rigoler mais aussi bien suer, car le code fonctionne a moitié (en fait, EXACTEMENT a moitié, au sens propre du terme :p) et c'est souvent encore plus dur a débugger que du code qui marche pas du tout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(std::vector<Entity>::iterator it = entities.begin(); it != entities.end(); ++it++)
    {
      //blabla
    }
    marrant quand meme :p

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Sinon, ne serait-ce pas tout simplement une boucle for normale dont le '<' aurait été effacé par un mauvais filtre anti-HTML?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Sinon, ne serait-ce pas tout simplement une boucle for normale dont le '<' aurait été effacé par un mauvais filtre anti-HTML?
    Non, d'après le P.O.
    En fait pour la petite histoire j'ai trouvé cette ligne de code dans un test de recrutement. J'ai trouvé cela interessant car souvent on écrit un for par automatisme sans se rappeler exactement de la signification de chaque champs.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  17. #17
    Membre actif Avatar de Twindruff
    Inscrit en
    Janvier 2005
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 216
    Points : 237
    Points
    237
    Par défaut
    Vous êtes quand même super agressifs avec Elay, je trouve ça intéressant de trouver les erreurs dans un bout de code. Même si là c'est assez facile ^^

Discussions similaires

  1. [Batch] FOR me fait une boucle de trop
    Par psychoboust dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 07/08/2009, 15h02
  2. Réponses: 5
    Dernier message: 27/11/2008, 17h34
  3. Réponses: 3
    Dernier message: 25/11/2008, 11h15
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

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