الحلقة الداخلية
في برامج الحاسوب ، تُعدّ الحلقة التكرارية شكلاً مهماً من أشكال التحكم في تدفق البرنامج ، حيث تُنفّذ كتلة من التعليمات البرمجية أكثر من مرة. ومن الممارسات الشائعة وضع حلقة تكرارية داخل حلقة تكرارية أخرى، وتُعرف الحلقة المُضمنة عادةً بالحلقة الداخلية.
تحسين البرنامج
لأن الحلقة الداخلية بأكملها يتم تنفيذها لكل تكرار من الحلقة الخارجية، فإن تحسينات الحلقة الداخلية سيكون لها تأثير أكبر بكثير من تحسينات الحلقة الخارجية.
في العديد من لغات البرمجة، يوجد نوعان على الأقل من الحلقات التكرارية: حلقات for وحلقات while ، ويمكن دمجهما داخل بعضهما البعض. [ 1 ] وقد أثبت توسين ب. أدومي أن أداء حلقة while مع حلقة for داخلية أفضل من أداء حلقة while بدون حلقة for داخلية. [ 2 ]
لوحظ أن عدد العمليات الحسابية التي تُجرى في وحدة الزمن يزداد عند استخدام حلقة تكرار داخلية (for loop) مقارنةً بعدم استخدامها. وهذا يعني أنه عند وجود نفس عدد العمليات الحسابية، فإن العملية التي تتضمن حلقة تكرار داخلية ستنتهي أسرع من تلك التي لا تتضمنها. وقد لوحظت هذه التقنية لتحسين أداء الحلقات في العديد من لغات البرمجة والمترجمات والمفسرات. في بعض الحالات، كانت حلقة التكرار (while loop) التي تتضمن حلقة تكرار داخلية أبطأ من حلقة التكرار التي لا تتضمن حلقة تكرار داخلية.
يُقدّم المثالان التاليان، المكتوبان بلغة بايثون، حلقة while مع حلقة for داخلية وحلقة while بدون حلقة داخلية. على الرغم من أن كليهما لهما نفس شرط الإنهاء لحلقات while، إلا أن المثال الأول سينتهي أسرع بسبب حلقة for الداخلية. المتغير innermax هو جزء من المتغير maxticketno في المثال الأول. [ 3 ]
بينما يكون حاصل ضرب رقم التذكرة في الحد الأقصى الداخلي أقل من الحد الأقصى لرقم التذكرة : لكل j في النطاق ( 0 ، الحد الأقصى الداخلي ): إذا كان ( رقم التذكرة * الحد الأقصى الداخلي + j ) يساوي رقم الجائزة الكبرى : أعد رقم التذكرة += 1طالما أن رقم التذكرة أقل من الحد الأقصى لرقم التذكرة : إذا كان رقم التذكرة يساوي رقم الجائزة الكبرى : أعد رقم التذكرة += 1مراجع
- ↑ غيزي، سي؛ جزائري، م (1996). مفاهيم لغات البرمجة (الطبعة الثالثة) . جون وايلي وأولاده.
- ↑ أدومي، توسين (أغسطس 2018). "بنية البرنامج الحلقي الداخلي: طريقة أسرع لتنفيذ البرنامج" . علوم الحاسوب المفتوحة . 8 : 115-122 . doi : 10.1515/comp-2018-0004 .
- ↑ فيشال (2021-06-09). "الحلقات المتداخلة في بايثون" . PYnative . تم الاسترجاع في 2022-09-07 .
- تدفق التحكم
- تحسين البرمجيات
- نماذج أولية لبرمجة الحاسوب
