Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa đệ quy và lặp trong Java là gì?

Đệ quy Lặp lại cả hai lặp đi lặp lại thực hiện tập hợp các hướng dẫn. Đệ quy là khi một câu lệnh trong một hàm tự gọi chính nó nhiều lần . Sự lặp lại là khi một vòng lặp thực thi lặp đi lặp lại cho đến khi điều kiện điều khiển trở thành sai . Sự khác biệt chính giữa đệ quy và lặp lại là đệ quy là một quá trình, luôn được áp dụng cho một hàm và lần lặp được áp dụng cho bộ hướng dẫn mà chúng tôi muốn thực thi lặp đi lặp lại .

Đệ quy

  • Đệ quy sử dụng cấu trúc lựa chọn .
  • Vô hạn đệ quy xảy ra nếu bước đệ quy không làm giảm sự cố theo cách hội tụ theo một số điều kiện ( cơ sở trường hợp ) và Đệ quy vô hạn có thể làm hỏng hệ thống.
  • Đệ quy kết thúc khi trường hợp cơ sở được công nhận.
  • Đệ quy thường chậm hơn so với lặp do chi phí duy trì ngăn xếp.
  • Đệ quy sử dụng nhiều bộ nhớ hơn so với lặp .
  • Đệ quy làm cho mã nhỏ hơn .

Ví dụ

public class RecursionExample {
   public static void main(String args[]) {
      RecursionExample re = new RecursionExample();
      int result = re.factorial(4);
      System.out.println("Result:" + result);
   }
   public int factorial(int n) {
      if (n==0) {
         return 1;
      }
      else {
         return n*factorial(n-1);
      }
   }
}

Đầu ra

Result:24


Lặp lại

  • Lặp lại sử dụng lặp lại cấu trúc .
  • Vòng lặp vô hạn xảy ra với sự lặp lại nếu kiểm tra điều kiện vòng lặp không bao giờ trở thành sai và Vòng lặp vô hạn sử dụng lặp đi lặp lại các chu kỳ CPU.
  • Một lần lặp lại kết thúc khi điều kiện vòng lặp không thành công .
  • Phép lặp không sử dụng ngăn xếp vì vậy nó nhanh hơn đệ quy .
  • Lặp lại tiêu tốn ít bộ nhớ hơn.
  • Lặp lại làm cho mã dài hơn .

Ví dụ

public class IterationExample {
   public static void main(String args[]) {
      for(int i = 1; i <= 5; i++) {
         System.out.println(i + " ");
      }
   }
}

Đầu ra

1
2
3
4
5