[débutant] passé un tableau en parametre

Le
yoyo
bonjour,

voilà j'essaye de faire une procédure du type

public static void init(int jeu[][])
{
int i,j;
jeu = new int[8][8];

for(i=0; i<=3; i++)
{
for (j=0; i<=8; j++)
{
if(i%2>0)
if(j%2>0)
print('x');
else
{
if(i%2==0)
if(j%2==0)
print('x');
}


}
}
}




mon soucis c'est que dés que je l'apelle comme ceci

init(jeu[][];

mais la jvm me renvoit ceci '.class' expected
init(jeu[][]);



merci de vos conseils ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sylvain SF
Le #18239191
a écrit :
bonjour,

voilà j'essaye de faire une procédure du type

public static void init(int jeu[][]){
int i,j;
jeu = new int[8][8];
...
}

mon soucis c'est que dés que je l'apelle comme ceci
init(jeu[][];
la jvm me renvoit ceci '.class' expected



[][] fait parti du type de la variable, pas du nom de celle-ci.
si vous voulez transmettre la variable 'jeu', écrivez simplement:

init(jeu);

... sous reserve que 'jeu' existe là où l'appel est réalisé,
or "init" instantie cette variable (peut être en double) et
ce tableau paramètre (cette variable 'jeu') peut pas un
paramètre variant, vous perdez donc toute l'initialisation
à la sortie de "init"

pour faire simple codez:

public static int[][] init(int kColumn, int kRow){
int[][] array = new int[kColumn][kRow];
// faire quelque chose du tableau
// le code posté n'a pas de sens
return array;
}

// et utilisez quelque part:

int[][] jeu = init(8, 8);

Sylvain.
yoyo
Le #18239381
Sylvain SF wrote:

a écrit :
bonjour,

voilà j'essaye de faire une procédure du type

public static void init(int jeu[][]){
int i,j;
jeu = new int[8][8];
...
}

mon soucis c'est que dés que je l'apelle comme ceci
init(jeu[][];
la jvm me renvoit ceci '.class' expected



[][] fait parti du type de la variable, pas du nom de celle-ci.
si vous voulez transmettre la variable 'jeu', écrivez simplement:

init(jeu);



ok!!! j'avais essayé mais le traitement s'affichait pas, je viens de trouvé
mon erreur.

... sous reserve que 'jeu' existe là où l'appel est réalisé,
or "init" instantie cette variable (peut être en double) et
ce tableau paramètre (cette variable 'jeu') peut pas un
paramètre variant, vous perdez donc toute l'initialisation
à la sortie de "init"



oui en effet elle est en double mais int jeux est juste un parametre, donc
une variable locale.

pour faire simple codez:

public static int[][] init(int kColumn, int kRow){
int[][] array = new int[kColumn][kRow];
// faire quelque chose du tableau
// le code posté n'a pas de sens
return array;
}

// et utilisez quelque part:

int[][] jeu = init(8, 8);

Sylvain.


Sylvain SF
Le #18239371
a écrit :

oui en effet elle est en double mais int jeux est juste un parametre, donc
une variable locale.



précisément non.

void foo(int a){
int b;
}

"a" est un paramètre.
"b" est une variable locale.

ce n'est pas pinaillage mais vocabulaire de base
et pour discuter sur un NG il est utile de s'entendre
sur le vocabulaire.

SF.
yoyo
Le #18239901
Sylvain SF wrote:

a écrit :

oui en effet elle est en double mais int jeux est juste un parametre,
donc une variable locale.



précisément non.

void foo(int a){
int b;
}

"a" est un paramètre.
"b" est une variable locale.

ce n'est pas pinaillage mais vocabulaire de base
et pour discuter sur un NG il est utile de s'entendre
sur le vocabulaire.

SF.



merci de cette explication je vois mieux pourquoi j'arrive pas au résultat
que je souhaite
Publicité
Poster une réponse
Anonyme