JavaRush /Java Blog /Random-IT /La ricorsione in breve
vinsler
Livello 35

La ricorsione in breve

Pubblicato nel gruppo Random-IT
Cos'è la ricorsione in Java, una specie di schifezza completa e incomprensibile, esaminiamola.
La ricorsione in breve - 1
Esempio:
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);
            }
        }
Puoi copiare questo codice e testarlo tu stesso. Descrizione di cosa succede all'interno con le variabili: inizialmente 15, 9 diviso 15 / 9 = 1, resto 6 , se c'è un resto, allora viene lanciata la nuova funzione, ma i valori saranno già 9, 6(dal resto) è diviso 9 / 6 = 1, resto 3 , se c'è un resto , quindi viene avviata la nuova funzione, ma i valori saranno già 6, 3(dal resto) viene diviso 6 / 3 = 2, resto 0 se non c'è resto, il secondo numero viene emesso dalla funzione 3 Ora guardiamo tutto più in dettaglio, per il mio nonna.
  1. La ricorsione in Java esegue una funzione dall'interno della funzione stessa.
  2. Quando viene avviata una funzione, tutto ciò che è stato fatto all'interno della funzione viene cancellato e viene avviata una nuova funzione, con nuovi parametri.
In altre parole, se vedi la parola avvio della stessa funzione [rec], prendi questa funzione all'inizio della sua descrizione, trasferisci lì i parametri forniti e guarda cosa succede dopo. Questa è tutta la spiegazione. Eseguiamo la funzione, impostiamo alcuni parametri al suo interno, in corrispondenza dei quali viene avviata la ricorsione o viene restituito un risultato. Questo è l'intero segreto. PS: ho scritto subito mentalmente e ho aiutato un amico, quindi tutte le critiche e i miglioramenti sono ben accetti. )))
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION