none
Créer variables For Next RRS feed

  • Question

  • Bonjour,

    j'aimerais savoir s'il existe un moyen en VB.NET de créer des variables dans une boucle for

    Exemple :

    Au lieu de les créer comme suit:

    var1 as integer
    var2 as integer
    var3 as integer
    var4 as integer
    ....
    varn as integer

    je procéderais comme suit

    for i as integer = 0 to 15
        dim var+i  as integer
        .....
    next

    Existe-t-il un moyen de le faire avec un for next ???

    Merci Beaucoup

    lundi 12 avril 2010 17:43

Réponses

  • Bonjour VinnyBowling,

    Il n'est pas possible de créer dynamiquement le nom d'une variable. C'est pour cela que l'on utilise des éléments énumérables (listes, tableaux , collections etc). D'où la solution qui t'est proposée par mmw01.

    De plus il faut faire attention à ce que tu fais dans tes boucles : une varialbe déclarée dans une boucle n'est pas de portée en dehors du scope de la boulce... donc elle n'existe pas en dehors si elle est déclarée dans la boucle. Mais elle est utilse si elle est déclarée hors de la boucle et affectée dans la boucle.

    Voil, J'éspère t'avoir aidé avec cette petite mise en garde... cela devrais t'éviter de futurs erreurs ;)


    Jérémy Jeanson MCP http://blogs.codes-sources.com/JeremyJeanson/ (French or English Spoken)
    • Proposé comme réponse Alex Petrescu mercredi 14 avril 2010 09:21
    • Marqué comme réponse Alex Petrescu mercredi 14 avril 2010 09:21
    mardi 13 avril 2010 06:27
  • salut

    je ne pense pas que cela soit possible

    et puis si tu crée une variable dans une boucle tu ne pourra pas l'utiliser en dehors de la boucle

    ce que je te propose c'est de créer un tableau en dehors de la boucle et de l'utiliser dans la boucle (ainsi tes données resteront même hors de la boucle) un exemple:

    dim t(15) as integer
    for i as integer = 0 to 15
    t(i)=i*i
    next

    et si le nombre d'élément est inconnu d'avance tu peut utiliser les list

    'd'abord importer l'espace de nom necessaire
    Imports System.Collections.Generic
    Dim lst As New List(Of integer)
    for i as integer =0 to 25
    malist.add(i*i)
    next
    l'important tu dois créer ta ou tes variables en dehors de la boucle


    Si à la seule lecture des commentaires de votre code l'on ne sait pas ce que fait votre programme jetez le tout. IBM
    • Proposé comme réponse Alex Petrescu mercredi 14 avril 2010 09:21
    • Marqué comme réponse Alex Petrescu mercredi 14 avril 2010 09:21
    lundi 12 avril 2010 19:09

Toutes les réponses

  • salut

    je ne pense pas que cela soit possible

    et puis si tu crée une variable dans une boucle tu ne pourra pas l'utiliser en dehors de la boucle

    ce que je te propose c'est de créer un tableau en dehors de la boucle et de l'utiliser dans la boucle (ainsi tes données resteront même hors de la boucle) un exemple:

    dim t(15) as integer
    for i as integer = 0 to 15
    t(i)=i*i
    next

    et si le nombre d'élément est inconnu d'avance tu peut utiliser les list

    'd'abord importer l'espace de nom necessaire
    Imports System.Collections.Generic
    Dim lst As New List(Of integer)
    for i as integer =0 to 25
    malist.add(i*i)
    next
    l'important tu dois créer ta ou tes variables en dehors de la boucle


    Si à la seule lecture des commentaires de votre code l'on ne sait pas ce que fait votre programme jetez le tout. IBM
    • Proposé comme réponse Alex Petrescu mercredi 14 avril 2010 09:21
    • Marqué comme réponse Alex Petrescu mercredi 14 avril 2010 09:21
    lundi 12 avril 2010 19:09
  • Bonjour VinnyBowling,

    Il n'est pas possible de créer dynamiquement le nom d'une variable. C'est pour cela que l'on utilise des éléments énumérables (listes, tableaux , collections etc). D'où la solution qui t'est proposée par mmw01.

    De plus il faut faire attention à ce que tu fais dans tes boucles : une varialbe déclarée dans une boucle n'est pas de portée en dehors du scope de la boulce... donc elle n'existe pas en dehors si elle est déclarée dans la boucle. Mais elle est utilse si elle est déclarée hors de la boucle et affectée dans la boucle.

    Voil, J'éspère t'avoir aidé avec cette petite mise en garde... cela devrais t'éviter de futurs erreurs ;)


    Jérémy Jeanson MCP http://blogs.codes-sources.com/JeremyJeanson/ (French or English Spoken)
    • Proposé comme réponse Alex Petrescu mercredi 14 avril 2010 09:21
    • Marqué comme réponse Alex Petrescu mercredi 14 avril 2010 09:21
    mardi 13 avril 2010 06:27
  • Bonjour,

     

    Un petit complément, si tu ne sais pas la taille de l'indice à la création, exemple

     

    Dim x() As Long
    
    ' ...
    
    ReDim x(5)
    
    

     


    Joe ___ Romans et Logiciels ___ http://irolog.free.fr
    mardi 13 avril 2010 08:22