การเรียกซ้ำ และ การวนซ้ำ ทั้งสองดำเนินการชุดคำสั่งซ้ำๆ การเรียกซ้ำ คือเมื่อคำสั่งในฟังก์ชัน เรียกตัวเองซ้ำๆ . การทำซ้ำ คือเมื่อวนซ้ำ ดำเนินการซ้ำๆ จนกว่าเงื่อนไขการควบคุมจะกลายเป็นเท็จ . ความแตกต่างหลักระหว่างการเรียกซ้ำและการวนซ้ำคือ การเรียกซ้ำ เป็นกระบวนการที่ใช้กับฟังก์ชันและ การวนซ้ำ . เสมอ ถูกนำไปใช้กับ ชุดคำสั่ง ซึ่งเราต้องการให้ดำเนินการซ้ำๆ .
การเรียกซ้ำ
- การเรียกซ้ำใช้ โครงสร้างการเลือก .
- อนันต์ การเรียกซ้ำ เกิดขึ้นหากขั้นตอนการเรียกซ้ำไม่ลดปัญหาในลักษณะที่บรรจบกับเงื่อนไขบางอย่าง (ฐาน กรณี ) และการเรียกซ้ำแบบไม่มีที่สิ้นสุดอาจทำให้ระบบขัดข้อง
- การเรียกซ้ำจะสิ้นสุดลงเมื่อ ตัวพิมพ์พื้นฐาน เป็นที่ยอมรับ
- การเรียกซ้ำมักจะ ช้ากว่าการวนซ้ำ เนื่องจากมีค่าใช้จ่ายในการรักษาสแตก
- การเรียกซ้ำใช้หน่วยความจำมากกว่าการวนซ้ำ .
- การเรียกซ้ำทำให้ โค้ดมีขนาดเล็กลง .
ตัวอย่าง
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