Đệ quy trong Java là gì, một thứ hoàn chỉnh, khó hiểu, chúng ta cùng tìm hiểu nhé.
Ví dụ:
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);
}
}
Bạn có thể sao chép mã này và tự kiểm tra nó. Mô tả những gì xảy ra bên trong với các biến: ban đầu 15, 9
được chia 15 / 9 = 1
, phần dư 6
, nếu có phần dư thì hàm mới sẽ được khởi chạy, nhưng các giá trị sẽ được 9, 6
(từ phần dư) được chia 9 / 6 = 1
, phần dư 3
, nếu có phần dư , thì hàm mới sẽ được khởi chạy, nhưng các giá trị sẽ được 6, 3
chia (từ số dư) 6 / 3 = 2
, số dư 0
nếu không có số dư thì số thứ hai sẽ được xuất ra từ hàm 3
. Bây giờ chúng ta hãy xem xét mọi thứ chi tiết hơn, đối với tôi bà ngoại.
- Đệ quy trong Java đang chạy một hàm từ bên trong chính hàm đó.
- Khi một hàm được khởi chạy, mọi thứ được thực hiện bên trong hàm sẽ bị xóa và một hàm mới sẽ được khởi chạy với các tham số mới.
GO TO FULL VERSION