Recursivité en java

kayzer59 Messages postés 19 Statut Membre -  
programox Messages postés 8 Statut Membre -
Bonjour,

j'ai une methode sur la recursivité j'ai compris la moitié par contre la deuxieme moitié je ne vois pas coment on l'obtient

voici la methode :

public void recursive(int n){
System.out.println("début"+ n);
if (n > 1)
recursive(n - 1);
System.out.println("fin"+ n);
}

grace à cette methode je sais qu'on obtient le resultat suivant :

début3
début2
début1
fin1
fin2
fin3

explication de la partie comprise :

affichage debut 3 ensuite compare si 3 est plus grand que 1 comme c'est vrai la methode fonctionne come une boucle grace à la ligne recursive(n-1) et repart au debut en enlevant 1 a n donc on se base maintenant sur 2

affichage debut 2 mm procedure

affichage debut 1 ensuite compare 1 par rapport à 1 comme 1 n'est pas supereur à 1 alors il affiche e qui ne fait pas partie du if autrement dit il affiche fin 1

pour la suite je ne comprend pas comment il fait pour afficher fin 2 et fin 3

merci pour tte vos participations
Configuration: Windows Vista
Internet Explorer 7.0

1 réponse

  1. vlmath Messages postés 833 Statut Contributeur 160
     
    Salut,

    C'est vrai que la récursivité peut être difficile à s'imaginer ...

    Pour les deux dernières lignes, tu peux te les représenter comme ça :
    appel de : recursive(3)
    print "début 3"
    appel de : recursive(3-1)
        print "début 2"
        appel de : recursive(2-1)
            print "début 1"
            par d'appel.
            print "fin 1"
        print "fin 2"
    print "fin 3"


    Avant d'avoir le retour, tu dois finir avec une fonction ; c'est pour ça que t'as en première fin le 1, et en troisième le 3.

    @Bientôt
    2
    1. programox Messages postés 8 Statut Membre
       
      Merci grâce a toi j'ai réussi à comprendre
      0