Chapitre 8. Méthodes récursives
Jusqu'à présent, nous avons utilisé les boucles while et for chaque fois que nous avions besoin de répéter quelque chose. Les méthodes qui utilisent l'itération sont appelées itératives. Elles sont simples, mais il existe parfois des solutions plus élégantes.
Dans ce chapitre, nous explorons l'une des choses les plus magiques qu'une méthode puisse faire : s' invoquer elle-même pour résoudre une version plus petite du même problème. Une méthode qui s'invoque elle-même est dite récursive.
Méthodes récursives pour le vide
Considère l'exemple suivant :
publicstaticvoidcountdown(intn){if(n==0){System.out.println("Blastoff!");}else{System.out.println(n);countdown(n-1);}}
Le nom de la méthode est countdown; elle prend un seul entier en paramètre. Si le paramètre est 0, elle affiche le mot Blastoff. Sinon, elle affiche le nombre et s'invoque elle-même en passant n - 1 comme argument.
Que se passe-t-il si nous invoquons countdown(3) à partir de main?
L'exécution de
countdowncommence parn == 3, et commenn'est pas 0, il affiche la valeur 3, puis s'invoque lui-même....L'exécution de
countdowncommence parn == 2, et commenn'est pas 0, il affiche la valeur 2, puis s'invoque lui-même....L'exécution de
countdowncommence parn == 1, et commenn'est pas zéro, il affiche la valeur 1, puis s'invoque lui-même.... ...