Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

อะไรคือความแตกต่างระหว่างการเรียกซ้ำและการวนซ้ำใน Java?


การเรียกซ้ำ และ การวนซ้ำ ทั้งสองดำเนินการชุดคำสั่งซ้ำๆ การเรียกซ้ำ คือเมื่อคำสั่งในฟังก์ชัน เรียกตัวเองซ้ำๆ . การทำซ้ำ คือเมื่อวนซ้ำ ดำเนินการซ้ำๆ จนกว่าเงื่อนไขการควบคุมจะกลายเป็นเท็จ . ความแตกต่างหลักระหว่างการเรียกซ้ำและการวนซ้ำคือ การเรียกซ้ำ เป็นกระบวนการที่ใช้กับฟังก์ชันและ การวนซ้ำ . เสมอ ถูกนำไปใช้กับ ชุดคำสั่ง ซึ่งเราต้องการให้ดำเนินการซ้ำๆ .

การเรียกซ้ำ

  • การเรียกซ้ำใช้ โครงสร้างการเลือก .
  • อนันต์ การเรียกซ้ำ เกิดขึ้นหากขั้นตอนการเรียกซ้ำไม่ลดปัญหาในลักษณะที่บรรจบกับเงื่อนไขบางอย่าง (ฐาน กรณี ) และการเรียกซ้ำแบบไม่มีที่สิ้นสุดอาจทำให้ระบบขัดข้อง
  • การเรียกซ้ำจะสิ้นสุดลงเมื่อ ตัวพิมพ์พื้นฐาน เป็นที่ยอมรับ
  • การเรียกซ้ำมักจะ ช้ากว่าการวนซ้ำ เนื่องจากมีค่าใช้จ่ายในการรักษาสแตก
  • การเรียกซ้ำใช้หน่วยความจำมากกว่าการวนซ้ำ .
  • การเรียกซ้ำทำให้ โค้ดมีขนาดเล็กลง .

ตัวอย่าง

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);
      }
   }
}

ผลลัพธ์

Result:24


การวนซ้ำ

  • การวนซ้ำใช้ การทำซ้ำ โครงสร้าง .
  • การวนซ้ำแบบอนันต์เกิดขึ้นพร้อมกับการวนซ้ำหากการทดสอบเงื่อนไขลูปไม่กลายเป็นเท็จ และการวนซ้ำแบบอนันต์ใช้รอบ CPU ซ้ำๆ
  • การวนซ้ำ สิ้นสุด เมื่อ เงื่อนไขการวนซ้ำล้มเหลว .
  • การวนซ้ำไม่ได้ใช้ กอง จึง เร็วกว่าการเรียกซ้ำ .
  • การวนซ้ำใช้ หน่วยความจำน้อยลง
  • การวนซ้ำทำให้ โค้ดยาวขึ้น .

ตัวอย่าง

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

ผลลัพธ์

1
2
3
4
5