Problème en Java

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;
}

1 réponse

  1. Modérateur
    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
    1. 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
    2. Modérateur
      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
    3. je suis trop débutant pour comprendre ce que tu viens de me dire :S
      0
    4. Modérateur
      @KakulukiamTu 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
    5. @KakulukiamDonc cest comme si javais deux parametre différents et jai renvoyé le mauvais?
      0