هي عبارة تكرارية مشابهة لعبارة التكرار for، تستخدم لتكرار خطوات البرمجية المحصورة بين قوسيها لعدد من المرات، وذلك بعد تفحُّص شرط التحقق، فإذا تحقق الشرط يبقى داخل الحلقة، وإذا لم يتحقق يتوقف عن التكرار لغة سي بلس بلس (++C) توفر عددًا من أساليب التكرار (الحلقات) التي تستخدم لتكرار أجزاء من البرنامج أكثر من مرة طالما أن تعبير الاختبار صحيح وإلّا تتوقف عن التكرار، وهناك ثلاثة أنواع من حلقات التكرار في لغة سي بلس بلس وهي for، while و do while وسنتحدث في هذا المقال عن عبارة التكرار for. تعريف عبارة التكرار for: عبارة التكرار for تعتبر أحد جمل التكرار المتوفرة في لغة سي بلس بلس وأكثرها استخدامَا لبساطتها وسهولتها، حيث يفضل الكثير من المبرمجين استخدامها في أغلب الأحيان لأنه ببساطة يتم تعريف المتغير المستخدم فى الحلقة وتحديد الشرط والعدّاد فى سطر واحد فقط وهو ما يسهل كثيرًا على المبرمج. حلقة for لها وظائف عديدة من هذه الوظائف إدخال القيم والبحث عنها وغيرها، وتستخدم كثيرًا في المصفوفات. وسائط جملة الشرط for: للكلمة المحجوزة for ثلاثة وسائط يتم الفصل بينها بفاصلة منقوطة، بحيث: الوسيط الأول: وهو عبارة عن متغيّر نضع به القيمة التي سيبدأ بها العدّاد، مثلا لتكرار أمر ما 10 مرات يكون العدّاد على سببيل المثال يبدأ بـ 0 وينتهي بـ 10. الوسيط الثاني شرط الاستمرار( condition): إذا كان الشرط خاطئ فسيتم الخروج من الحلقة، وإذا كان صحيح فسيتم إعادة تنفبذ الأوامر، مثلا إذا كان العدّاد أقل من أو يساوي 10 استمر، ويبقى التكرار قائمًا حتى ينتفي الشرط ويصبح أكبر من 10. الوسيط الثالث: وهو المؤثر (غالبًا ما يكون مقدار الزيادة أو النقصان في العدّاد). مثال على هذا الكلام لو أردنا تكرار أمر معين ثلاث مرات: ما الفرق بين الحلقة التكرارية for والحلقات while و do while؟ عادة لا تعرف الحلقة while والحلقة do while عدد مرات تكرار الحلقة لكن في الحلقة التكرارية for يكون عدد مرات تنفيذ الحلقة مذكورًا عادة في بدايتها. الحلقات التكرارية: كثيراً ما نحتاج في البرامج إلى تكرار أمر موجه للكمبيوتر عدداً من المرات، وتوفر لغة c++ عدة وسائل تمكن المبرمج من أداء هذا التكرار، وعادة ما تسمى هذه الوسائل "الحلقات التكرارية" في لغة c++، وسنتناول منها: 1- الحلقة: for loop. 2- الحلقة: while loop. 3- الحلقة do-while loop. الحلقة: while loop. في هذه الحلقة التكرارية نحتاج إلى الشرط فقط وطالما كان هذا الشرط متحققاً إستمرت الحلقة في التكرار. والصورة العامة للحلقة: while loop. موضحة بالشكل الآتي:\ Condition هو الشرط اللازم لأداء التكرار، والعبارات بداخل أقواس هي البلوكات حيث أنها العبارات المراد تكرارها. والمثال الموضح بالشكل الآتي يوصح استخدام الحلقة: while loop. لطباعة الأعداد من 1 إلى 20. من المثال السابق يمكننا إستخلاص النتائج الآتية عن الحلقة: while loop. *- تخصيص القيمة الإبتدائية للعداد يتم خارج الحلقة: while loop. *- زيادة الأعداد يتم داخل الحلقة: while loop. مثال: برنامج لحساب متوسط مجموعة من درجات الحرارة، ويتوقف البرنامج عن القراءة عند إدخال القيمة 999. الحلقة التكرارية do – while: تختلف هذه الحلقة عن الحلقات الآخرى في مكان كتابة الشرط، حيث يكتب الشرط هنا بعد العبارات المطلوب تكرارها والفرق الرئيسي بين الحلقات التكرارية والحلقات المشروطة أن الحلقات المشروطة تعتمد في تنفيذها على شرط condition بينما الحلقات التكرارية تنفذ عدد معين من المرات. وكما تعلمت من قبل أن الصورة العامة للعبارة do – while في لغة فيجول بيسك كالآتي: حيث أن condition هو الشرط الذي يعتمد عليه التنفيذ وهو تعبير منطقي يتحكم في إمكانية تكرار تنفيذ جمل الحلقة أو إيقاف التكرار. - يتم التحقق من الشرط فإذا كانت قيمته صحيحة يتم تنفيذ الحلقة do – while ويستمر التكرار طالما ظل الشرط متحققاً، وما أن يصبح غير متحقق حتى يتم نقل التنفيذ إى العبارة التالية للحلقة (أي خارج الحلقة )ويتم إختبار تحقق لشرط قبل إجراء التعليمات داخل الحلقة، وعليه فلو كان الشرط غير متحقق لن يتم تنفيذ العبارات في الحلقة ولا مرة. - أما في لغة c++ فإن الشكل العام لهت كالآتي: - والشكل الآتي يوضح الصورة العامة للحلقة do – while وأهم ملاحظة على الحلقة التكرارية do – while أنها تنفذ العبارات المطلوب تكرارها مرة واحدة على الأقل حتى ولو كان الشرط غير متحقق، وتفسير ذلك لأن التحقق من الشرط يتم بعد التنفيذ أول مرة وليس قبله. ففي جملة do – while يتم التكرار طالما الشرط متحقق (ويتم التكرار على الأقل مرة واحدة). For – loop: كثيرا ما نحتاج في البرامج إلى تكرار أمر موجه للكمبيوتر عدداً من المرات وتوفر لغة c++ عدة وسائل تمكن المبرمج من أداء هذا التكرار، وعادة ما تسمى هذه الوسائل " الحلقات التكرارية" وفي لغة c++ سنتناول منها الحلقة for – loop لتكرار أمر معين أو مجموعة من الأوامر عدداً من المرات. ولقد تعلمت في لغة فيجول بيسك أن تركيب جملة for هو كالآتي: مثال: أما في لغة c++ إذا كان هناك أمراً واحد مراد تكراره فإن تركيب جملة for يكون كالآتي: أما إذا كام هناك عدة جمل (عدة أوامر) مراد تكرارها فإن تركيب جملة لغة c++ يكون كالآتي: والشكل الآتي يوضح كيفية عمل جملة for: تعطي القيمة الإبتدائية للعداد expr-1 شرط التوقف (التحقق) expr- c الخطوة expr-s والعبارات الثلاثة المكونة لحلقة for يجب أن تفصل عن بعضها بالفاصلة المنقوطة، وهذا الخطأ من الأخطاء الشهيرة جداً في عالم البرمجة لذا وجب توخي الحذر. مثال: برنامج يقوم بطباعة الأعداد من 1 إلى 3: لاحظ أن آخر قيمة لل I هي 4 والنتيجة تكون كالآتي: مثال: برنامج يقرأ عدد صحيح غير سالب ثم يحسب ويطبع قيمة المضروب: N!=n(n-1)(n-2)…….*3*2*1 مثال: وضح نتيجة تنفيذ البرنامج: ونتيجة التفيذ تكون: مثال برنامج يطبع جدول الضرب من 1 إلى 5: وتكون نتيجة التنفيذ كالاتي: حل آخر: وتكون نتيجة التنفيذ كالاتي: