Nommage dynamique de variable

Fermé
rose - 24 févr. 2003 à 14:57
 Smahane - 28 nov. 2012 à 20:17
Bonjour, Bonjour,

mon problème va vous sembler basique mais je ne parviens pas à le résoudre:
dans une boucle for , je souhaite creer i objets et le nom de l'objet doit être
monNom1, puis dans le trour suivant monNom2, bref monNom concaténé à i en fait comment faire????
Merci

10 réponses

xav1611 Messages postés 525 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 13 décembre 2006 13
24 févr. 2003 à 17:18
Salut,

Pour moi, si tu utilises v(1), v(2) etc... tu utilises un tableau v et le chiffre entre parenthèse est un indice. Dans ce cas tu ne declares qu'une variable v et tu peux parcourir les valeurs dans une boucle. Si tu fais avec v1, v2 etc... tu es obligé de declarer toutes ces variables, et tu ne peux plus les parourir dans une boucle... Si il y a 3 valeurs à stocker, ce n'est pas génant, mais si tu en as 300, je te laisse imaginer la galère...

Les portes de l'avenir sont ouvertes à ceux qui savent 
les pousser...
1
mana angel Messages postés 1 Date d'inscription vendredi 18 mars 2011 Statut Membre Dernière intervention 18 mars 2011
18 mars 2011 à 10:44
bonjour
est ce
comment je peut faire ça exactement?
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
24 févr. 2003 à 15:14
Dans quel langage ?
0
euh.......... en JAVA pardon
0
xav1611 Messages postés 525 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 13 décembre 2006 13
24 févr. 2003 à 15:42
Bonjour,

Je crois que l'utilisation d'un tableau s'impose... J'avais essayé de faire ça dans un de mes tous premiers programme (sur une calculatrice Ti), mais en essayant toutes les possibilités de concatenation ça n'a jamais fonctionné... Tu n'auras pas monnom1, mais monnom(1), c'est exactement pareil.. Après, pour la mise en place en Java, il y a pas mal de monde qui pourra t'aider...

Bon courage,

Les portes de l'avenir sont ouvertes à ceux qui savent 
les pousser...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
24 févr. 2003 à 15:50
mmm... je ne comprend pas bien.
Le nom d'un object est sans importance. C'est sa référence qui importe.

exemple:
a = new objectToto()
b = a

a et b désignent la même référence, c'est à dire le même objet.
Le nom n'a aucune importance.

Si tu veux créer x objets, tu ferais plutôt une boucle du genre (pseudo-code):
v = new vector()
pour i de 1 à 12:
v.add( new objectToto() )

Ainsi tu te retrouve avec un vector v contenant 12 objets de ton choix.
0
xav1611 Messages postés 525 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 13 décembre 2006 13
24 févr. 2003 à 16:55
C'est moi que tu ne comprends pas bien?

Dans ton pseudo-code, v correspond à un tableau?
Ce que voulait faire Rose n'est pas, à mon avis, réalisable. Au lieu d'utiliser un tableau, elle voulait créer une nouvelle variable qui changerait de nom en vonction de la valeur de i, c'est à dire qu'au premier passage, on aurait la variable var1, au deuxième var2 et ainsi de suite (enfin, c'est ce que j'ai compris, et ce que j'aurai bien aimé faire il y a quelques temps).

Les portes de l'avenir sont ouvertes à ceux qui savent 
les pousser...
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
24 févr. 2003 à 17:37
Dans ton pseudo-code, v correspond à un tableau?

Oui.
C'est juste qu'en Java on ne peut pas faire de tableau comportant des objets de type différents. Les vecteurs sont à peu près l'équivalent, et ils ont quelques méthodes intéressantes.
0
j'ai le même probleme en fait je crois lol

je veux que ma table vari son nom exp: tab1,tab2,tab3... donc j'ai pensé à faire une boucle tab(i) je sais pas qoiii!!!?????
0
quel difference entre :
v1,v2,v3 et v(1),v(2),v(3).

C pareil!!!?
ou il y a un truc que je comprend pas!!?
0
bbakeroo Messages postés 2197 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 10 juin 2007 71
24 févr. 2003 à 17:18
rose ? si tu es toujours parmis nous
c'est le titre de ton post qui nous interpelle .

Un variable à pour principale caractéristique de pouvoir changer de valeur dynamiquement (à l'inverse d'une constante), bon ok je sais ca fait un peu basique, mais quel est l'intérêt de changer dynamiquement le nom d'une variable ? (sans changer de valeur ?)

il y a là, dans le concept qqchse de contradictoire, enfin je dis ca ...

moi j'utiliserais la bonne vieille méthode des tableau, méthode qui a largement fait ses preuves du reste.
pour ce qui est de réinventer l'eau chaude...

111 111 111 x 111 111 111 = 12345678987654321
0
xav1611 Messages postés 525 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 13 décembre 2006 13
24 févr. 2003 à 17:19
Ok, ben on est d'accord...

Les portes de l'avenir sont ouvertes à ceux qui savent 
les pousser...
0
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 208
24 févr. 2003 à 18:31
Pour en savoir un peu plus (mais pas tout) sur "les tableaux JS, comment çà marche ?", une petite page :

<HTML>
<HEAD>
<TITLE> Test Tableau </TITLE>
<SCRIPT>
function showVar(x) {
val = eval(x) ;
lx = 20 - x.length ;
while ( lx > 0 ) {
x += " " ; lx-- ;
}
dw(" ------------> "+x+" = "+val+"<br>") ;
}
function dw(txt) {
document.write(txt) ;
}
function dws(txt) {
document.write("<B> "+txt+"</B><br>") ;
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#80C4C4">
<script>
dw("<pre>") ;
var tab = new Array(3) ; dws('var tab = new Array(3) ;') ;
tab[1] = 321 ; dws(' tab[1] = 321 ;') ;
showVar("tab.length") ;
showVar("tab[0]") ;
showVar("tab[1]") ;
showVar("tab[2]") ;
showVar("tab[3]") ;
var couleurs = new Array(5,1) ; dws('var couleurs = new Array(5,1) ;') ;
showVar("couleurs.length") ;
showVar("couleurs[0]") ;
showVar("couleurs[1]") ;
couleurs[2] = "ajout_en_2" ; dws('couleurs[2] = "ajout_en_2" ;') ;
showVar("couleurs.length") ;
showVar("couleurs[2]") ;
couleurs[4] = "ajout_en_4" ; dws('couleurs[4] = "ajout_en_4" ;') ;
showVar("couleurs.length") ;
showVar("couleurs[3]") ;
showVar("couleurs[4]") ;
couleurs["choux"] = "vert" ; dws('couleurs["choux"] = "vert" ;') ;
couleurs["radis"] = "rose" ; dws('couleurs["radis"] = "rose" ;') ;

couleurs["carotte"] = "rouge" ; dws('couleurs["carotte"] = "rouge" ;') ;
couleurs["choux"+1] = "vert_1" ;dws('couleurs["choux"+1] = "vert_1" ;') ;
showVar("couleurs[\"choux\"+1]") ;
showVar("couleurs['choux1']") ;
showVar("couleurs.choux1") ;
showVar("couleurs.length") ;
showVar("couleurs[choux]") ;
var choux = 1 ; dws('var choux = 1 ;') ;
showVar("couleurs[choux]") ;
showVar("couleurs.choux") ;
showVar("couleurs['radis']") ;
showVar("couleurs['carotte']") ;
showVar("couleurs['choux']") ;
showVar("couleurs['choux1']") ;
showVar("couleurs.choux") ;
</script>
</BODY>
</HTML>
0