مقدمة
في الدرس السابق تعرفنا على حلقة "for"، وعرفنا أنها تُستخدم عندما يكون عدد مرات التكرار معروفًا أو يمكن تحديده مسبقًا.
لكن ليست كل البرامج تعرف عدد مرات التكرار قبل بدء التنفيذ، فبعضها يعتمد على شرط قد يتغير أثناء عمل البرنامج.
في هذه الحالة نستخدم حلقة "while".
تُعد حلقة "while" من الحلقات الأساسية في C++، وتستخدم في كثير من البرامج التي تحتاج إلى الاستمرار في تنفيذ الأوامر حتى يتحقق شرط معين.
---
ما هي حلقة "while"؟
حلقة "while" هي بنية برمجية تسمح للبرنامج بتكرار تنفيذ مجموعة من التعليمات طالما أن الشرط المحدد لها صحيح.
قبل كل دورة، تقوم C++ بفحص الشرط.
إذا كان الشرط صحيحًا، تنفذ الأوامر الموجودة داخل الحلقة.
أما إذا أصبح الشرط غير صحيح، فإن الحلقة تتوقف مباشرة، ويكمل البرنامج تنفيذ بقية التعليمات.
---
لماذا نستخدم حلقة "while"؟
في العديد من البرامج لا يمكن معرفة عدد مرات التكرار مسبقًا.
فعلى سبيل المثال، قد يحتاج البرنامج إلى الانتظار حتى يستجيب جهاز معين، أو الاستمرار في معالجة البيانات حتى تنتهي، أو مراقبة حالة نظام معين بشكل مستمر.
في مثل هذه الحالات، تكون "while" هي الحل المناسب لأنها تعتمد على تحقق الشرط وليس على عدد ثابت من مرات التكرار.
---
كيف تعمل حلقة "while"؟
تعتمد حلقة "while" على شرط منطقي يتم فحصه قبل تنفيذ الأوامر.
إذا كان الشرط صحيحًا، تبدأ الحلقة بتنفيذ التعليمات.
وبعد انتهاء التنفيذ، يتم فحص الشرط مرة أخرى.
وتستمر هذه العملية حتى يصبح الشرط غير صحيح، وعندها تنتهي الحلقة.
---
الفرق بين "while" و "for"
كلتا الحلقتين تستخدمان للتكرار، لكن لكل واحدة منهما استخدام مختلف.
تستخدم "for" عندما يكون عدد مرات التكرار معروفًا.
أما "while" فتستخدم عندما يعتمد استمرار الحلقة على شرط قد يتغير أثناء تشغيل البرنامج.
واختيار الحلقة المناسبة يجعل الكود أكثر وضوحًا وأسهل في الصيانة.
---
أين تستخدم حلقة "while"؟
تستخدم "while" في كثير من مشاريع C++، مثل:
- الألعاب.
- الأنظمة المدمجة.
- برامج التحكم في الأجهزة.
- البرامج الهندسية.
- تطبيقات معالجة البيانات.
- الأنظمة التي تعمل بشكل مستمر.
ولهذا فهي من الأدوات الأساسية التي يحتاجها كل مبرمج C++.
---
متى تكون "while" أفضل من "for"؟
إذا لم يكن عدد مرات التكرار معروفًا قبل تشغيل البرنامج، فإن "while" تكون الخيار الأفضل.
فهي تسمح للبرنامج بالاستمرار في العمل حتى يتحقق الشرط المطلوب، مهما استغرق ذلك من وقت أو عدد من التكرارات.
ولهذا تستخدم كثيرًا في الأنظمة التي تعتمد على المراقبة أو الانتظار.
---
الحلقات اللانهائية
من أشهر الأخطاء عند استخدام "while" إنشاء حلقة لا نهائية.
ويحدث ذلك عندما يبقى الشرط صحيحًا دائمًا، فلا يستطيع البرنامج الخروج من الحلقة.
وقد يؤدي ذلك إلى استهلاك موارد الجهاز أو توقف البرنامج عن الاستجابة.
لذلك يجب التأكد من أن الشرط سيتغير في مرحلة ما أثناء التنفيذ.
---
أهمية حلقة "while" في المشاريع الحقيقية
تستخدم "while" في الكثير من البرامج الاحترافية، لأنها تسمح بتنفيذ العمليات بشكل مستمر حتى يتحقق الهدف المطلوب.
ولهذا ستجدها في برامج التحكم، والخوادم، ومحركات الألعاب، والروبوتات، والأنظمة الصناعية.
---
أخطاء شائعة عند المبتدئين
من الأخطاء التي يقع فيها المبتدئون:
- الاعتقاد أن "while" و"for" متشابهتان تمامًا.
- نسيان تحديث الشرط داخل الحلقة.
- إنشاء حلقة لا نهائية دون قصد.
- استخدام "while" في حالات يكون فيها استخدام "for" أكثر ملاءمة.
لذلك يجب فهم طريقة عملها جيدًا قبل استخدامها في المشاريع العملية.
---
ملخص الدرس
تعرفنا في هذا الدرس على حلقة "while" في C++، وعرفنا أنها تستخدم عندما يعتمد التكرار على شرط معين وليس على عدد محدد من المرات. كما تعلمنا الفرق بينها وبين "for"، وأهمية استخدامها في البرامج التي تعمل باستمرار أو تعتمد على تحقق شرط معين، وتعرفنا على مفهوم الحلقات اللانهائية وأسباب حدوثها.
في الدرس الحادي عشر سنتعرف على أوامر التحكم في الحلقات، مثل إيقاف الحلقة أو تخطي جزء من التكرار، وسنفهم كيف تمنحنا تحكمًا أكبر أثناء تنفيذ البرامج.



