Création
d'entreprise
Posez votre question Signaler

Nommage dynamique de variable

rose - Dernière réponse le 18 mars 2011 à 10:44
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
Lire la suite 

Nommage dynamique de variable »

12 réponses
Réponse
+1
moins plus
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...
mana angel- 18 mars 2011 à 10:44
bonjour
est ce
comment je peut faire ça exactement?
Ajouter un commentaire
Réponse
+0
moins plus
Dans quel langage ?
Ajouter un commentaire
Réponse
+0
moins plus
euh.......... en JAVA pardon
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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...
sebsauvage- 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.
Ajouter un commentaire
Réponse
+0
moins plus
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!!?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Ok, ben on est d'accord...

Les portes de l'avenir sont ouvertes à ceux qui savent 
les pousser...
Ajouter un commentaire
Réponse
+0
moins plus
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>
Ajouter un commentaire
Ce document intitulé « nommage dynamique de variable » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?