JavaRush /Blog Java /Random-FR /La récursivité en quelques mots
vinsler
Niveau 35

La récursivité en quelques mots

Publié dans le groupe Random-FR
Qu'est-ce que la récursivité en Java, une sorte de connerie complète et incompréhensible, passons en revue.
La récursivité en un mot - 1
Exemple:
public class Recursion {
        public static void main(String[] args) {
            System.out.println("Изначальный REC ( 15 , 9 )" );
            System.out.println(rec(15,9)); // запускаем sout с возвращаемым функцией [rec] результатом
        }

        static int rec (int m, int n) { // передаем в функцию [rec] 2 числа
            if(m % n == 0) { // если первое число [m] делится на второе число [n] нацело, то возвращаем его
                System.out.println("Окончателное число " + n);
                return n;
            } else {
                // если не делится нацело, то перезапускаем функцию и заносим в него другие аргументы :
                // в качестве первого уже будет второе число [n],
                // а в качестве второго будет остаток от деления первого[m] на второе[n] 15 / 9 = 1 (+ остаток 6)
                System.out.println("Заносим в REC (" + n + " , " + m % n + ")");
                return rec(n,m % n);
            }
        }
Vous pouvez copier ce code et le tester vous-même. Description de ce qui se passe à l'intérieur avec les variables : initialement 15, 9 divisé 15 / 9 = 1, reste 6 , s'il y a un reste, alors la nouvelle fonction est lancée, mais les valeurs seront déjà 9, 6(du reste) est divisée 9 / 6 = 1, reste 3 , s'il y a un reste , alors la nouvelle fonction est lancée, mais les valeurs seront déjà 6, 3(du reste) est divisée 6 / 3 = 2, reste 0 s'il n'y a pas de reste, le deuxième nombre est sorti de la fonction 3 . Voyons maintenant tout plus en détail, pour mon grand-mère.
  1. La récursion en Java exécute une fonction à partir de la fonction elle-même.
  2. Lorsqu'une fonction est lancée, tout ce qui a été fait à l'intérieur de la fonction est effacé et une nouvelle fonction est lancée, avec de nouveaux paramètres.
En d'autres termes, si vous voyez le mot lancement de la même fonction [rec], alors prenez cette fonction au tout début de sa description, transférez-y les paramètres fournis et voyez ce qui se passe ensuite. C'est toute l'explication. Nous exécutons la fonction, définissons certains paramètres à l'intérieur, auxquels soit la récursivité démarre, soit un résultat est renvoyé. C'est tout le secret. PS : J'ai tout de suite écrit de ma tête et j'ai aidé un ami pour une chose, donc toutes les critiques et améliorations sont les bienvenues. )))
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION