Java의 재귀란 무엇입니까? 완전하고 이해할 수 없는 쓰레기입니다. 이에 대해 살펴보겠습니다.
예:
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);
}
}
이 코드를 복사하여 직접 테스트할 수 있습니다. 변수 내부에서 발생하는 일에 대한 설명: 처음에는 15, 9
나누어진 나머지, 15 / 9 = 1
나머지 6
가 있으면 새 함수가 시작되지만 값은 이미 9, 6
(나머지에서) 나누어지고 9 / 6 = 1
, 나머지 3
, 나머지가 있는 경우 , 새 함수가 시작되지만 값은 이미 6, 3
(나머지에서) 나누어지고 나머지가 6 / 3 = 2
없으면 0
두 번째 숫자가 함수에서 출력됩니다 3
. 이제 모든 것을 더 자세히 살펴 보겠습니다. 할머니.
- Java의 재귀는 함수 자체 내에서 함수를 실행하는 것입니다.
- 기능이 시작되면 해당 기능 내에서 수행된 모든 작업이 지워지고 새 매개변수를 사용하여 새 기능이 시작됩니다.
GO TO FULL VERSION