Nommage dynamique de variable

rose -  
 Smahane -
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 527 Statut Membre 13
 
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   Statut Membre Dernière intervention  
 
bonjour
est ce
comment je peut faire ça exactement?
0
sebsauvage Messages postés 33415 Statut Modérateur 15 664
 
Dans quel langage ?
0
rose
 
euh.......... en JAVA pardon
0
xav1611 Messages postés 527 Statut Membre 13
 
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 33415 Statut Modérateur 15 664
 
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 527 Statut Membre 13
 
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 33415 Statut Modérateur 15 664
 
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
Smahane
 
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
brj
 
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 2200 Statut Membre 71
 
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 527 Statut Membre 13
 
Ok, ben on est d'accord...

Les portes de l'avenir sont ouvertes à ceux qui savent 
les pousser...
0
Marden Messages postés 1075 Statut Membre 210
 
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