Pour préciser ce qui est dit précédemment, si tu fais une fonction qui retourne un int
alors cette fonction doit retourner un entier dans tous les cas.
Du coup, la ligne
if (n < 0) {System.out.println("pas possible");
introduit la possibilité de ne rien renvoyer (sauf un commentaire sur la console mais ça ne compte pas)
Alors le compilateur refuse de compiler ce code.
Par ailleurs, les lignes suivantes ne servent à rien :
1 2
| int g=2;
// TODO, add your application code |
En débarrassant le code de ce qui est inutile ou ne marche pas :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class Recursive {
static int calcul(int n) {
if (n == 0) {return 0;}
// if (n < 0) {System.out.println("pas possible");
else {
return ((n * n) + calcul(n - 1));
}
}
public static void main(String[] args) {
System.out.println(calcul(3));
}
} |
Au fait, le nom d'une classe commence par une majuscule ; donc recursive -> Recursive
Partager