JavaRush /จาวาบล็อก /Random-TH /การเรียกซ้ำโดยสรุป
vinsler
ระดับ

การเรียกซ้ำโดยสรุป

เผยแพร่ในกลุ่ม
การเรียกซ้ำใน 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