JavaRush /Java Blog /Random-KO /간단히 말해서 재귀
vinsler
레벨 35

간단히 말해서 재귀

Random-KO 그룹에 게시되었습니다
Java의 재귀란 무엇입니까? 완전하고 이해할 수 없는 쓰레기입니다. 이에 대해 살펴보겠습니다.
간단히 말해서 재귀 - 1
예:
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 . 이제 모든 것을 더 자세히 살펴 보겠습니다. 할머니.
  1. Java의 재귀는 함수 자체 내에서 함수를 실행하는 것입니다.
  2. 기능이 시작되면 해당 기능 내에서 수행된 모든 작업이 지워지고 새 매개변수를 사용하여 새 기능이 시작됩니다.
즉, 동일한 함수 [rec]의 시작이라는 단어가 표시되면 설명 시작 부분에서 이 함수를 가져와 제공된 매개변수를 거기로 전송하고 다음에 무슨 일이 일어나는지 확인합니다. 그게 전부입니다. 함수를 실행하고 내부에 특정 매개변수를 설정하면 재귀가 시작되거나 일부 결과가 반환됩니다. 그게 전부 비밀이에요. 추신: 저는 머리 속에서 바로 글을 썼고 한 가지에 대해 친구를 도왔습니다. 따라서 모든 비판과 개선은 환영합니다. )))
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION