Hướng dẫn recursion javascript w3schools - đệ quy javascript w3schools
Chức năng đệ quyGo chấp nhận các chức năng đệ quy. Một hàm được đệ quy nếu nó tự gọi và đạt đến điều kiện dừng. Show
Trong ví dụ sau, Thí dụ Gói nhập chính ("FMT") func testCount (x int) int {& nbsp; if x == 11 {& nbsp; & nbsp; & nbsp; trả về 0 & nbsp; } & nbsp; fmt.println (x) & nbsp; trả về testCount (x + 1)} func main () {& nbsp; testcount (1)} Result:
Hãy tự mình thử » Recursion là một khái niệm toán học và lập trình phổ biến. Điều này có lợi ích của ý nghĩa mà bạn có thể lặp qua dữ liệu để đạt được kết quả. Nhà phát triển nên cẩn thận với các chức năng đệ quy vì nó có thể khá dễ dàng để viết một chức năng không bao giờ kết thúc, hoặc một chức năng sử dụng lượng bộ nhớ hoặc nguồn bộ xử lý dư thừa. Tuy nhiên, khi được viết chính xác đệ quy có thể là một cách tiếp cận rất hiệu quả và về mặt toán học để lập trình. Trong ví dụ sau, Thí dụ Gói nhập chính ("FMT") func testCount (x int) int {& nbsp; if x == 11 {& nbsp; & nbsp; & nbsp; trả về 0 & nbsp; } & nbsp; fmt.println (x) & nbsp; trả về testCount (x + 1)} func main () {& nbsp; testcount (1)} Hãy tự mình thử » 0 Hãy tự mình thử » Recursion là một khái niệm toán học và lập trình phổ biến. Điều này có lợi ích của ý nghĩa mà bạn có thể lặp qua dữ liệu để đạt được kết quả. Khi hàm public class Main { public static void main(String[] args) { int result = sum(5, 10); System.out.println(result); } public static int sum(int start, int end) { if (end > start) { return end + sum(start, end - 1); } else { return end; } } }1 được gọi, nó sẽ thêm tham số public class Main { public static void main(String[] args) { int result = sum(5, 10); System.out.println(result); } public static int sum(int start, int end) { if (end > start) { return end + sum(start, end - 1); } else { return end; } } }2 vào tổng của tất cả các số nhỏ hơn public class Main { public static void main(String[] args) { int result = sum(5, 10); System.out.println(result); } public static int sum(int start, int end) { if (end > start) { return end + sum(start, end - 1); } else { return end; } } }2 và trả về kết quả. Khi K trở thành 0, hàm chỉ trả về 0. Khi chạy, chương trình tuân theo các bước sau:10 + tổng (9) 10 + (9 + tổng (8)) 10 + (9 + (8 + tổng (7))) ... 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + tổng (0) 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 Vì hàm không tự gọi khi 2 là 0, chương trình dừng ở đó và trả về kết quả. Điều kiện tạm dừngGiống như các vòng lặp có thể chạy vào vấn đề vòng lặp vô hạn, các hàm đệ quy có thể gặp phải vấn đề đệ quy vô hạn. Đệ quy vô hạn là khi chức năng không bao giờ ngừng tự gọi. Mỗi chức năng đệ quy nên có một điều kiện tạm dừng, đó là điều kiện mà chức năng ngừng tự gọi. Trong ví dụ trước, điều kiện tạm dừng là khi tham số 2 trở thành 0. Thí dụSử dụng đệ quy để thêm tất cả các số lên đến 10.
Hãy tự mình thử » Ví dụ giải thíchKhi hàm 1 được gọi, nó sẽ thêm tham số 2 vào tổng của tất cả các số nhỏ hơn 2 và trả về kết quả. Khi K trở thành 0, hàm chỉ trả về 0. Khi chạy, chương trình tuân theo các bước sau: 10 + tổng (9) 10 + (9 + tổng (8)) 10 + (9 + (8 + tổng (7))) ... 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + tổng (0) 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 Vì hàm không tự gọi khi 2 là 0, chương trình dừng ở đó và trả về kết quả. Điều kiện tạm dừngGiống như các vòng lặp có thể chạy vào vấn đề vòng lặp vô hạn, các hàm đệ quy có thể gặp phải vấn đề đệ quy vô hạn. Đệ quy vô hạn là khi chức năng không bao giờ ngừng tự gọi. Mỗi chức năng đệ quy nên có một điều kiện tạm dừng, đó là điều kiện mà chức năng ngừng tự gọi. Trong ví dụ trước, điều kiện tạm dừng là khi tham số 2 trở thành 0. Thật hữu ích khi thấy một loạt các ví dụ khác nhau để hiểu rõ hơn về khái niệm này. Trong ví dụ này, hàm thêm một loạt các số giữa bắt đầu và kết thúc. Điều kiện tạm dừng cho hàm đệ quy này là khi kết thúc không lớn hơn bắt đầu:end is not greater than start: Thí dụSử dụng đệ quy để thêm tất cả các số từ 5 đến 10.
Hãy tự mình thử » Nhà phát triển nên rất cẩn thận với đệ quy vì có thể khá dễ dàng để viết một chức năng không bao giờ chấm dứt hoặc sử dụng lượng bộ nhớ hoặc nguồn bộ xử lý dư thừa. Tuy nhiên, khi được viết chính xác đệ quy có thể là một cách tiếp cận rất hiệu quả và về mặt toán học để lập trình. |