JavaRush /Java Blog /Random-JA /再帰の概要
vinsler
レベル 35

再帰の概要

Random-JA グループに公開済み
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 剰余がない場合は剰余、関数から 2 番目の数値が出力されます 3 。祖母。
  1. Java における再帰とは、関数自体の内部から関数を実行することです。
  2. 関数が起動されると、関数内で行われたすべての処理が消去され、新しいパラメーターを使用して新しい関数が起動されます。
言い換えれば、同じ関数 [rec] の起動という単語が表示された場合は、この関数を説明の最初に取り出し、指定されたパラメーターをそこに転送し、次に何が起こるかを確認します。説明は以上です。関数を実行し、内部に特定のパラメータを設定します。このパラメータで再帰が開始されるか、何らかの結果が返されます。それがすべての秘密です。追伸: 私は頭の中ですぐに書き、あることで友人を助けました。そのため、あらゆる批判や改善は大歓迎です。)))
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION