JavaRush /Java 博客 /Random-ZH /简而言之,递归
vinsler
第 35 级

简而言之,递归

已在 Random-ZH 群组中发布
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 = 20 如果没有余数,则从函数输出第二个数字 3 。现在让我们更详细地看看所有内容,对于我的祖母。
  1. Java 中的递归是从函数本身内部运行函数。
  2. 当函数启动时,函数内所做的所有操作都会被删除,并启动一个带有新参数的新函数。
换句话说,如果您看到同一函数 [rec] 的启动一词,则在其描述的最开始处获取该函数,将提供的参数传输到那里,然后看看接下来会发生什么。这就是所有的解释。我们运行该函数,在内部设置某些参数,在这些参数中要么开始递归,要么返回一些结果。这就是全部的秘密。PS:我只是凭自己的想法写的,并且帮助了一位朋友一件事,所以欢迎所有批评和改进。)))
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION