ما هو العودية جافا؟
يُعرف السيناريو الذي تستدعي فيه الوظيفة أو الطريقة نفسها بالتكرار وتعرف هذه الوظيفة أو الطريقة بالدالة العودية أو الطريقة العودية. يُستخدم هذا الأسلوب دائمًا لتقسيم المشكلات المعقدة إلى مشكلات بسيطة وأسهل في الكتابة. مثال بسيط هو وضع مرآتين أمام بعضهما البعض وسوف تبدأان في عكس بعضهما البعض بشكل متكرر والذي يمكنك رؤيته بسهولة.العودية غير المباشرة
يمثل المثال أعلاه العودية غير المباشرة ، أي الدالة الأولى تستدعي الدالة الثانية والدالة الثانية تستدعي الدالة الأولى.العودية المباشرة
عندما تستدعي إحدى الطرق نفسها مرارًا وتكرارًا، فإنها تسمى العودية المباشرة .حالة التوقف
الآن سوف تفكر في ما إذا كانت إحدى الطرق تستدعي نفسها مرارًا وتكرارًا، فتأكد من أنها ستواجه خطأ Stack Overflow . نعم، أنت على حق، مثل التكرار اللانهائي يمكن أن يتحول إلى تكرار لا نهائي. يجب علينا توفير شرط أساسي أو شرط إنهاء حتى نوقف هذا العود اللانهائي، وهو ما يعرف بشرط التوقف، ويتم توفير هذا الشرط دائمًا داخل أسلوب التكرار، وهو ما سنراه بالتفصيل في المثال أدناه.مثال العودية
class Recursion {
static int factorial( int n ) {
// base condition or termination condition
if (n != 0)
// here we are calling the recursive method
return n * factorial(n-1);
else
return 1;
}
public static void main(String[] args) {
// initializing the variables
int number = 5, result;
result = factorial(number);
System.out.println(number + " factorial = " + result);
// changing the value from 5 to 10
number = 10;
result = factorial(number); // recursive function call
System.out.println(number + " factorial = " + result);
}
}
إخراج المثال
مضروب 5 = 120 مضروب 10 = 3628800
في مثال الطريقة المتكررة هذا، لدينا عامل دالة تم استدعاؤه من الطريقة الرئيسية. لقد مررنا قيمة 5 لنرى ما هو مضروبها، وهو 120. هذه الدالة المضروب تستدعي نفسها مرة أخرى عن طريق تمرير قيمة 4، والتي تستدعي القيمة 3 وتمررها مرة أخرى، وهكذا، حتى يصبح شرط التوقف التقى، وهي القيمة 0. ويحدث الشيء نفسه عندما قمنا بتغيير القيمة من 5 إلى 10.
GO TO FULL VERSION