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;
}
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
-
ModérateurQuand 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.
-
-
ModérateurJe 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 -
-
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 !
-
@KakulukiamDonc cest comme si javais deux parametre différents et jai renvoyé le mauvais?
-