-
missing return statement
Bonsoir,
Lors de la compilation, j'ai une erreur de type "missing return statement" provoqué par cette méthode:
public int IndexHasard(){
Random r = new Random();
ArrayList<Integer> index = new ArrayList<Integer>();
for(int i=indexNa+1; i<statut.size(); i++){
if(statut.get(i)==-1){
indexNa = i;
return i;
}else{
indexNa =0;
for(int j=0; j<statut.size(); j++){
if(statut.get(i)==0){
index.add(i);
}
}
return r.nextInt(index.size());
}
}
quelque soit les conditions la methode renvoie toujours un entier
si le "if" passe il renvoie un "int"
sinon le "else" renvoie aussi un "int"
alors pourquoi une telle erreur?
faut il un seul return suivie de la derniere acolade
p.s. soyez clément je débute :)
-
Salut,
Dans ta logique, la fonction renvoie toujours quelquechose, mais dans la logique du compilateur, il ne peut pas deviner que tu ne vas pas sortir de la boucle sans rien retourner, et donc si par hasard tu sors de la boucle, tu ne retourne rien, donc il te le dit "attention apres la boucle tu dois retourner quelque chose mais tu ne retournes rien !"
fais un return apres la boucle et ça devrait compiler
F.
-
ah ok c'est exact
merci Fred :yaisse2: