CodeGym /مدونة جافا /Random-AR /جافا العودية
John Squirrels
مستوى
San Francisco

جافا العودية

نشرت في المجموعة

ما هو العودية جافا؟

يُعرف السيناريو الذي تستدعي فيه الوظيفة أو الطريقة نفسها بالتكرار وتعرف هذه الوظيفة أو الطريقة بالدالة العودية أو الطريقة العودية. يُستخدم هذا الأسلوب دائمًا لتقسيم المشكلات المعقدة إلى مشكلات بسيطة وأسهل في الكتابة. مثال بسيط هو وضع مرآتين أمام بعضهما البعض وسوف تبدأان في عكس بعضهما البعض بشكل متكرر والذي يمكنك رؤيته بسهولة.

العودية غير المباشرة

يمثل المثال أعلاه العودية غير المباشرة ، أي الدالة الأولى تستدعي الدالة الثانية والدالة الثانية تستدعي الدالة الأولى.

العودية المباشرة

عندما تستدعي إحدى الطرق نفسها مرارًا وتكرارًا، فإنها تسمى العودية المباشرة .

حالة التوقف

الآن سوف تفكر في ما إذا كانت إحدى الطرق تستدعي نفسها مرارًا وتكرارًا، فتأكد من أنها ستواجه خطأ 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.

مزايا وعيوب التكرار

من السهل كتابة التعليمات البرمجية العودية وتصحيح أخطائها وصيانتها، مما يوفر الوقت. ولكن من ناحية أخرى، مع كل استدعاء، يتم استهلاك الذاكرة للمتغيرات، ولهذا السبب يمكن أن تنفد الذاكرة.

خاتمة

نأمل أن تفهم عودية Java وكيفية تنفيذها، بالإضافة إلى مزاياها وعيوبها. لا تتردد في التدرب والعودة عندما تحتاج إلى مزيد من المساعدة. تعلم سعيد!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION