فهم Recursion من خلال شرط التوقف
الدالة اللي بتنادي نفسها لازم تقرب من حالة توقف واضحة وإلا الاستدعاءات هتستمر
شغل المثال بإستخدام Node.js لتوضيح الفكرة ويمكن تطبيق نفس المبدأ في لغات تانية
المثال العملي
function factorial(n) {
if (!Number.isInteger(n) || n < 0 || n > 18) throw new RangeError('Use 0 To 18');
if (n === 0) return 1;
return n * factorial(n - 1);
}
console.log(factorial(5));
console.log(factorial(0));النتيجة
120
1كل استدعاء بيقلل n بواحد لحد الصفر والحد الأعلى هنا بيبقي النتيجة ضمن الأعداد الصحيحة الآمنة في JavaScript
جرب بنفسك
اكتب نسخة بحلقة وقارنها بالنسخة الحالية لكل قيمة من صفر إلى عشرة