1: التنفيذ العادي لجدول الضرب 99 بسيط للغاية، حتى أن المبرمج يمكنه القيام بذلك كما يلي:
package test.ms;public class Test99 { public static void main(String[] args) { for(int i=1; i<=9;i++){ for(int j=1; j<=i; j++){ System.out.print(j+" * "+i+ " = "+(i*j) +" " } System.out.println(); }} }
2: استخدم العودية لتنفيذ جدول الضرب 99
الرمز هو كما يلي:
package test.ms;public class MultiTable { public static void main(String args[]) { m(9 } /** * اطبع جدول الضرب* @param i */ public static void m(int i) { if (i == 1) { System.out.println("1*1=1 "); else { m(i - 1); System.out.print(j + "*" + i + "=" + j * i + " ") System.out.println(); } } };
استدعاء الرمز بشكل متكرر:
سيقوم كل استدعاء أسلوب بإنشاء إطار مكدس ودفعه إلى مكدس الطريقة. عند إجراء استدعاء متكرر، سيبدو إطار المكدس في مكدس الطريقة مشابهًا للصورة أعلاه.
من البديهي إزالة العلاقة المرجعية لإطار المكدس في الطريقة: كما هو موضح في الشكل التالي:
تم تبسيط التنفيذ النهائي لاستدعاء الطريقة المقابلة كما هو موضح في الشكل أعلاه. لاحظ أن i قد تغير وأن j يبدأ من 1 في كل مرة ثم يزداد حتى يساوي i.
بهذه الطريقة، بعد إخراج الصورة أعلاه من المكدس، يتم الحصول على 99 جدول ضرب:
تلخيص:
مقارنة بين الحلقات المتداخلة وتنفيذ التكرار:
يتم استخدام المكدس بشكل أساسي لتخزين إطارات المكدس في كل مرة يتم فيها تنفيذ طريقة ما، ستحدث عملية دفع. لذلك، سيتم إنشاء المزيد من إطارات المكدس عند استخدام العودية سيتم تنفيذ حلقة for. هناك طريقة تدفع إطار المكدس مرة واحدة، ولا يوجد سوى إطار مكدس واحد، لذلك فهو يوفر الذاكرة.
مرحبا بكم في إعطائي ممتاز. حتى فقدت الوعي.