Cos'è la ricorsione in Java, una specie di schifezza completa e incomprensibile, esaminiamola.
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.
- La ricorsione in Java esegue una funzione dall'interno della funzione stessa.
- 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.
GO TO FULL VERSION