Problème de return

Résolu/Fermé
Pokermon07 Messages postés 10 Date d'inscription dimanche 30 septembre 2012 Statut Membre Dernière intervention 27 octobre 2014 - Modifié par Pokermon07 le 27/10/2014 à 16:11
Pokermon07 Messages postés 10 Date d'inscription dimanche 30 septembre 2012 Statut Membre Dernière intervention 27 octobre 2014 - 27 oct. 2014 à 17:01
Bonjour,

j'essaye de créer une fonction qui permet de prendre aléatoirement un élément dans une liste de type ArrayList, met cet élément dans une String et le supprime aussitôt de la liste, et ce répété le nombre de fois choisi. Je sais pas si j'ai été très clair ^^

Voici le code :

static String f2(int nbSuppr){

ArrayList<String> Liste = new ArrayList<String>();

Liste.add("x");
Liste.add("y");
Liste.add("z");
Liste.add("a");
Liste.add("b");

int i=0;
int x=4;
do{
int k = (int) (Math.random()*x);
String res = Liste.get(k);
Liste.remove(k);
String res2 = (res + " ");
i++;
x--;
}while(i!=nbSuppr);
return res2;
}


Le problème est qu'il me dit que res2 n'est pas défini...

Merci de me dire ce qui ne va pas :)

1 réponse

Utilisateur anonyme
27 oct. 2014 à 16:34
Salut,

Le problème c'est que tu définis ta variable res2 dans ta boucle while. C'est donc une variable locale à ta boucle. Si tu veux l'utiliser dans la boucle et en dehors, il faut que tu la déclare avant, et tu lui donne sa valeure ensuite. Du genre :

static String f2(int nbSuppr){ 

ArrayList<String> Liste = new ArrayList<String>();
String res2 = "";

Liste.add("x");
Liste.add("y");
Liste.add("z");
Liste.add("a");
Liste.add("b");

int i=0;
int x=4;
do{
int k = (int) (Math.random()*x);
String res = Liste.get(k);
Liste.remove(k);
res2 = (res + " ");
i++;
x--;
}while(i!=nbSuppr);

return res2;
}


Il n'y aurait aucun pb si il n'y avait pas le return res2
0
Pokermon07 Messages postés 10 Date d'inscription dimanche 30 septembre 2012 Statut Membre Dernière intervention 27 octobre 2014
27 oct. 2014 à 17:01
D'accooooord !

Super merci ;)
0