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

VB.NET Discussion :

Boucle For Next (VB.NET)


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut Boucle For Next (VB.NET)
    Bonjour,
    J'ai un besoin particulier et je n'ai pas trouvé le moyen d'y répondre.
    J'utilisais la boucle (VB.NET) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i=1 to 10
          (instructions)
    Next
    Je souhaite à présent utiliser la boucle pour différentes VALEURS NON CONSECUTIVES de i ( du genre For i=1 to 6 and 8 To 10). Quelqu'un saurait-il quel code appliquer, j'ai tenté différentes combinaisons qui ne marchent pas ?

    Merci par avance

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    soit 2 boucles for
    et dans le pire des cas une sub qui recoit i pour ne pas avoir 2x fois le code


    sinon une collection, dans laquel tu ajoutes toutes les valeurs de i qu'il te faut
    et ensuite for each i as integer in la_collection


    ou encore un while i<maxi
    et à la fin tu incrémentes i de 1 sauf dans certains cas ou tu l'incrémentes de plus comme ça t'arranges
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    Merci bien !!
    Je vote pour le "For each" !
    Bonne journée

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    Euh... Je me suis un peu précipitée...
    Je n'arrive pas à trouver la syntaxe définissant ma collection :
    Range = 1-6 ,8-10 ne fonctionne pas

  5. #5
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !
    Au fait, qu'est ce qui définit tes plages d'un point de vue logique ?
    Parce que s'il y a une raison logique pour que tu n'aies qu'un certain nombre d'éléments à traiter, il te sera peut être possible de générer une collection d'une autre manière...

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  6. #6
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    Tu peux procéder 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
    11
    12
    13
    14
    15
    16
     
    for i=0 to 10
     
      if i>0 and i<=6 then 
     
        <traitement>
     
      end if
     
      if i>6 and i <=10 then 
     
       <traitement>
     
      end if 
     
    Next

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    Je prends ta solution vinz81 !
    J'aurais quand même pu y penser ...
    Merci !

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    Si le code de vinz81 te conviens, il y a du coup un peu plus simple ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 0 to 10
      If i = 7 then i = 8
      <traitement>
    Next

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    Merci du tuyau, mais je ne le comprends pas...
    Tu rend la cas i=7 égal au cas i=8, pourquoi ?

  10. #10
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    A moins qu'il y ait une erreur dans ta saisie :
    ""If i=7 or i=8 then.."", non ?

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    Tu souhaite une boucle allant de 1 à 6 puis de 8 à 10.
    Pour le dire autrement, tu souhaite "sauter" le 7.
    Du coup, lorsque tu rentre dans ta boucle et que son compteur est a 7, tu le mets a 8 ...
    Ton traitement ne seras parcouru que 9 fois (et non pas dix)
    Cela revient a faire ce que tu évoquait dans ton premier post : For i=1 to 6 puis 8 To 10

    Test le code et tu veras que c'est bon ...

    [edit] "If i = 7 then i = 8" agit comme un next et laisse le 7 sans traitement.

  12. #12
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 50
    Points
    50
    Par défaut
    Dac j'ai compris, merci de m'avoir éclairé et en effet, cela fonctionne
    Bon aprem

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

Discussions similaires

  1. les boucles for..next
    Par dispa dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/06/2007, 14h23
  2. boucle for next ? peut être mais comment
    Par caro2552 dans le forum VBA Access
    Réponses: 11
    Dernier message: 07/02/2007, 20h26
  3. [VB.net] Boucle for next avec un tableau
    Par grand_prophete dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/05/2006, 11h08
  4. [VB6] Problème contrôle Timer et boucle For-Next ...
    Par Stéphane BEHMENBURG dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/12/2005, 17h36
  5. Réponses: 3
    Dernier message: 03/11/2005, 19h22

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