Ano ang recursion sa Java, isang uri ng kumpleto, hindi maintindihan na crap, pag-usapan natin ito.
Halimbawa:
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);
}
}
Maaari mong kopyahin ang code na ito at subukan ito sa iyong sarili. Paglalarawan ng kung ano ang nangyayari sa loob kasama ang mga variable: sa una 15, 9
hinati 15 / 9 = 1
, natitira 6
, kung may natitira, pagkatapos ay ang bagong function ay inilunsad, ngunit ang mga halaga ay magiging 9, 6
(mula sa natitira) ay nahahati 9 / 6 = 1
, natitira 3
, kung may natitira , pagkatapos ay ang bagong function ay inilunsad, ngunit ang mga halaga ay magiging 6, 3
(mula sa natitira) ay nahahati 6 / 3 = 2
, natitira 0
kung walang natitira, ang pangalawang numero ay output mula sa function 3
. Ngayon tingnan natin ang lahat nang mas detalyado, para sa aking lola.
- Ang recursion sa Java ay nagpapatakbo ng isang function mula sa loob mismo ng function.
- Kapag ang isang function ay inilunsad, lahat ng ginawa sa loob ng function ay mabubura at isang bagong function ay inilunsad, na may mga bagong parameter.
GO TO FULL VERSION