Problème en Java

Fermé
Kakulukiam Messages postés 31 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 11 octobre 2011 - 24 sept. 2011 à 17:35
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 24 sept. 2011 à 18:47
Bonjour,

J'essais de passer un tableau (laCombinaison) en paramètre dans le module CreerCombinaisonGagnante pour ensuite le remplir, le retourner et m'en servir, mais quand il retourne, toute les cellules se remette à 0 et je ne comprend pas pourquoi...

private void btnTirerCombinaisonsActionPerformed(java.awt.event.ActionEvent evt) {
String lsZero = "0";
int[] laCombinaison;
laCombinaison = new int[7];

txaAffichage.setText ("");
CreerCombinaisonGagnante(laCombinaison);
lblCombinaisonGagnante.setText(String.valueOf(laCombinaison[0]) + lsZero.substring(0,2-String.valueOf(laCombinaison[0]).length()));
lblComplementaire.setText("(" + String.valueOf(laCombinaison[6]) + ")");
}

public int[] CreerCombinaisonGagnante(int[] paCombinaison) {
int liLower = 1;
int liHigher = 50;
int liRandom;

paCombinaison = new int[7];
for (int liI = 0; liI <= 6; liI++)
{
liRandom = (int)(Math.random() * (liHigher - liLower)) + liLower;
for (int liJ = 0; liJ <= 5; liJ++)
{
if (liRandom == paCombinaison[liJ])
{
liI = liI - 1;
liJ = 5;
}
if (liI == 6)
{
paCombinaison[liI] = liRandom;
}
}
paCombinaison[liI] = liRandom;
}
return paCombinaison;
}
A voir également:

1 réponse

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
24 sept. 2011 à 17:50
Quand tu fais paCombinaison = new int[7]; tu effaces la valeur précédente de paCombinaison, ton paramètre ne sers donc à rien, ton tableau est réinitialisé à 0.
1
Kakulukiam Messages postés 31 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 11 octobre 2011 1
24 sept. 2011 à 18:09
Même si je ne comprend pas la logique derrière ca, tu as raison et ca fonctionne. :)
Mais pourquoi ca le renvoi vide puisque je le rempli apres la réinitialisé?
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
Modifié par KX le 24/09/2011 à 18:16
Je n'ai pas testé (je n'ai pas le code complet), mais le fait que tu ne récupères pas le tableau résultat rentre certainement en compte dans le résultat que tu as :

int[] laCombinaison = CreerCombinaisonGagnante(); 

public int[] CreerCombinaisonGagnante()  
{   
	int[] paCombinaison = new int[7]; 
	//...
	return paCombinaison;
}
La confiance n'exclut pas le contrôle
0
Kakulukiam Messages postés 31 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 11 octobre 2011 1
24 sept. 2011 à 18:25
je suis trop débutant pour comprendre ce que tu viens de me dire :S
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020 > Kakulukiam Messages postés 31 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 11 octobre 2011
24 sept. 2011 à 18:37
Tu as un résultat int[] que tu donnes avec le return, mais tu ne t'en sers pas dans ton code (tu ne le récupères pas) donc le calcul ne te sers à rien ! laCombinaison par rapport à CreerCombinaisonGagnante ce n'est pas son paramètre, mais son résultat !
0
Kakulukiam Messages postés 31 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 11 octobre 2011 1 > Kakulukiam Messages postés 31 Date d'inscription lundi 8 mars 2010 Statut Membre Dernière intervention 11 octobre 2011
24 sept. 2011 à 18:39
Donc cest comme si javais deux parametre différents et jai renvoyé le mauvais?
0