Was ist Rekursion in Java, eine Art völliger, unverständlicher Mist, lassen Sie uns das durchgehen.
Beispiel:
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);
}
}
Sie können diesen Code kopieren und selbst testen. Beschreibung dessen, was im Inneren mit den Variablen passiert: zunächst 15, 9
geteilt 15 / 9 = 1
, Rest 6
, wenn ein Rest vorhanden ist, wird die neue Funktion gestartet, aber die Werte werden bereits 9, 6
(aus dem Rest) sein geteilt 9 / 6 = 1
, Rest 3
, wenn es einen Rest gibt , dann wird die neue Funktion gestartet, aber die Werte werden bereits 6, 3
(vom Rest) dividiert 6 / 3 = 2
, Rest 0
wenn es keinen Rest gibt, wird die zweite Zahl von der Funktion ausgegeben 3
. Schauen wir uns nun alles genauer an, für mich Oma.
- Bei der Rekursion in Java wird eine Funktion innerhalb der Funktion selbst ausgeführt.
- Wenn eine Funktion gestartet wird, wird alles, was innerhalb der Funktion getan wurde, gelöscht und eine neue Funktion mit neuen Parametern gestartet.
GO TO FULL VERSION