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 for [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut problème boucle for
    bonjour.
    J'ai du mal à comprendre pourquoi mon "i" n'incrémente pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for (int i = 0; i < elementsByTagName.Count; i++)
    {
        MessageBox.Show(Convert.ToString(i));
        MessageBox.Show(Convert.ToString(elementsByTagName.Count));  // <- = 3
        if ((Regex.Match(elementsByTagName[i].InnerXml.ToString(), "<state>succeeded</state>").Success))
        {
             mes instructions
        }
        else
        {
              mes autres instructions
        }
    }
    Mon i est toujours égal à 0 pourquoi ? Je pensai qu'il faisait une première boucle avec i à 0, qu'il essayé mon "if" et que s'il était pas bon il faisait mon "else" puis qu'il faisait une deuxieme boucle à 1 et etc jusqu'a (elementsByTagname.Count)
    Faut passer par While ? si oui comment je dois modifier svp
    Merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 28
    Par défaut
    Tu as un ';' en trop à la fin de la définition de ta boucle. En gros le programme rentre pas dedans. Tu l'enlèves et tes problèmes sont résolues

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut
    Citation Envoyé par Morbius Voir le message
    Tu as un ';' en trop à la fin de la définition de ta boucle. En gros le programme rentre pas dedans. Tu l'enlèves et tes problèmes sont résolues
    Il y est pas je me suis trompé en le retapant ici.
    Désolé. je l'ai enlevé.

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Je ne vois pas de problème dans la boucle for à proprement parler.

    As tu vérifier la valeur de elementsByTagName.Count ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut
    Citation Envoyé par Aeronia Voir le message
    Je ne vois pas de problème dans la boucle for à proprement parler.

    As tu vérifier la valeur de elementsByTagName.Count ?
    Euh... oui je l'avais vérifié mais je viens de le re vérifier et ça me donne du texte bon 2s je me replonge dans mon programme.
    Merci pour l'aide !

    Non c'est bon... elementsByTagName.Count = 3 donc c'est bon (oublié le count ^^)

  6. #6
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut Optimisation
    Si tu ne modifies pas le nombre d'éléments dans ta liste de tags (ce que je te déconseille fortement), voici une optimisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (int i = 0, cpt = elementsByTagName.Count; i < cpt; i++)
    Ceci évite d'évaluer .Count à chaque ittération.

    D'ailleurs, ton problème ne viendrait-il pas de là ? Dans les instructions que tu lances, ne modifierais-tu pas elementsByTagName ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Si tu ne modifies pas le nombre d'éléments dans ta liste de tags (ce que je te déconseille fortement), voici une optimisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (int i = 0, cpt = elementsByTagName.Count; i < cpt; i++)
    Ceci évite d'évaluer .Count à chaque ittération.

    D'ailleurs, ton problème ne viendrait-il pas de là ? Dans les instructions que tu lances, ne modifierais-tu pas elementsByTagName ?
    (merci pour l'amélioration)
    Non je ne redéfinie ni mon "i" ni mon "elementsByTagName"
    par contre mon for est dans un "if" lui même dans un "while", le tout dans un "backgroundworker" sur une tempo "t" qui ne le lance pas si le "backgroundworker" est déjà entrain de travailler.
    Du coup je me dis que le "i" est peu être redéfinie dans un autre "backgroundworker".... ça pourrais interférer ??

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    il y a le debug et le pas à pas qui t'aideront a trouver ton problème

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    il y a le debug et le pas à pas qui t'aideront a trouver ton problème
    Je crois qu'effectivement c'est ce qui me fait le plus avancé... j'ai bien un problème dans mon "else" ça m'éjecte de ma boucle. merci tous je finis de chercher et je met en résolu dès que c'est bon.

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

Discussions similaires

  1. Problème boucle for
    Par revsys dans le forum Delphi
    Réponses: 20
    Dernier message: 24/05/2007, 15h50
  2. Problème boucle for
    Par rouliane dans le forum C++
    Réponses: 2
    Dernier message: 14/12/2006, 14h37
  3. [VBA-E, Débutant] Problème Boucle for
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/08/2006, 12h30
  4. [Débutant] Problème boucle for
    Par toniooooo dans le forum Langage
    Réponses: 10
    Dernier message: 18/04/2006, 14h42
  5. [FLASH 8] Problème Boucle For
    Par Begood dans le forum Flash
    Réponses: 6
    Dernier message: 21/03/2006, 11h36

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