Đệ quy trong Java
Học Java bắt đầu với Hello, World
Tự làm quen với các bài tập và gửi đoạn code đầu tiên của bạn bằng cách hoàn thành bài đầu tiên "Hello, World!".
Luyện tập
Đệ quy Java
  • Đệ quy là kỹ thuật thực hiện lời gọi hàm. Kỹ thuật này cung cấp một cách để chia nhỏ các vấn đề phức tạp thành các vấn đề đơn giản dễ giải quyết hơn.
  • Đệ quy có thể hơi khó hiểu. Cách tốt nhất để tìm ra cách thức hoạt động của nó là thử nghiệm với nó.
Ví dụ đệ quy

    Cộng hai số với nhau thì dễ nhưng cộng một dãy số thì phức tạp hơn. Trong ví dụ sau, đệ quy được sử dụng để cộng một dãy số với nhau bằng cách chia nhỏ nó thành nhiệm vụ đơn giản là cộng hai số.

Ví dụ
Compiler
Giải thích

    Khi sum() hàm được gọi, nó sẽ thêm tham số k vào tổng của tất cả các số nhỏ hơn k 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 thực hiệ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 k = 0 nên chương trình dừng tại đó và trả về kết quả.

Điều kiện dừng

    Khi sum() hàm được gọi, nó sẽ thêm tham số k vào tổng của tất cả các số nhỏ hơn k 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 thực hiệ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 k = 0 nên chương trình dừng tại đó và trả về kết quả.

Ví dụ
Compiler
Một số bài viết liên quan
Devsne VN 6635 lượt xem

Nguyên lý S.O.L.I.D. trong JavaScript (P1)

Devsne VN 5999 lượt xem

Tìm hiểu Nullish coalescing operator (??) và Optional chaining (?.) và cách sử dụng chúng trong lập trình Javascript

Phương Thảo 3260 lượt xem

Java List – Example Lists in Java

Devsne VN 8763 lượt xem

Common mistakes to avoid when coding in JavaScript

Devsne VN 6173 lượt xem

Understanding Object-oriented Programming in JavaScript

Devsne VN 606 lượt xem

Lập trình game phát hiện va chạm bằng Java

Devsne VN 4644 lượt xem

7 JavaScript Design Patterns.

Devsne VN 4862 lượt xem

Java Developer Roadmap for 2022

Devsne VN 7975 lượt xem

Bài 2 trong loạt bài viết về lập trình bất đồng bộ với JavaScript: Giới thiệu về Asynchronous JavaScript.

Devsne VN 5227 lượt xem

Sử dụng Bill Pugh Singleton pattern để tối ưu Java code