Skip to Content
Penser Java, 2e édition
book

Penser Java, 2e édition

by Allen Downey, Chris Mayfield
November 2024
Intermediate to advanced
326 pages
7h 36m
French
O'Reilly Media, Inc.
Book available
Content preview from Penser Java, 2e édition

Chapitre 8. Méthodes récursives

Cet ouvrage a été traduit à l'aide de l'IA. Tes réactions et tes commentaires sont les bienvenus : translation-feedback@oreilly.com

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 :

public static void countdown(int n) {
    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 countdown commence par n == 3, et comme n n'est pas 0, il affiche la valeur 3, puis s'invoque lui-même....

L'exécution de countdown commence par n == 2, et comme n n'est pas 0, il affiche la valeur 2, puis s'invoque lui-même....

L'exécution de countdown commence par n == 1, et comme n n'est pas zéro, il affiche la valeur 1, puis s'invoque lui-même.... ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Performance Java, 2ème édition

Performance Java, 2ème édition

Scott Oaks
Apprendre Java, 6e édition

Apprendre Java, 6e édition

Marc Loy, Patrick Niemeyer, Daniel Leuck
Programmer avec Java

Programmer avec Java

Benjamin Evans, David Flanagan

Publisher Resources

ISBN: 9798341610545Supplemental Content