حلقة while
في لغة C هي أداة تحكم في تدفق البرنامج تسمح بتكرار تنفيذ كتلة من الأوامر طالما أن شرطًا معينًا صحيح. بمعنى آخر، تستمر الحلقة في العمل طالما أن الشرط المُعطى يُقيّم إلى "صحيح" (true).
شكل حلقة while
الأساسي:
C
while (الشرط) { // كتلة الأوامر التي سيتم تكرارها}
شرح الأجزاء:
while
: الكلمة المفتاحية التي تحدد بداية الحلقة.(الشرط)
: تعبير منطقي يتم تقييمه قبل كل تكرار. إذا كان التعبير صحيحًا (قيمة غير صفرية)، يتم تنفيذ كتلة الأوامر. إذا كان التعبير خاطئًا (صفر)، يتوقف تنفيذ الحلقة ويستمر البرنامج في التنفيذ من الأمر التالي بعد الحلقة.{}
: الأقواس المتعرجة تُحدد كتلة الأوامر التي سيتم تكرارها. إذا كانت الكتلة تحتوي على أمر واحد فقط، يمكن حذف الأقواس، ولكن من الممارسات الجيدة استخدامها دائمًا لتوضيح الكود وتجنب الأخطاء.
كيف تعمل حلقة while
:
- يتم تقييم الشرط أولاً.
- إذا كان الشرط صحيحًا، يتم تنفيذ كتلة الأوامر داخل الحلقة.
- بعد تنفيذ كتلة الأوامر، يعود البرنامج إلى بداية الحلقة ويتم تقييم الشرط مرة أخرى.
- تستمر هذه العملية طالما أن الشرط صحيح.
- عندما يصبح الشرط خاطئًا، يتوقف تنفيذ الحلقة وينتقل البرنامج إلى الأمر التالي بعد الحلقة.
مثال بسيط:
C
#include <stdio.h>
int main() { int i = 1;
while (i <= 5) { printf("%d\n", i); i++; // مهم جدًا: زيادة قيمة i لتجنب حلقة لا نهائية }
return 0;}
في هذا المثال، يتم طباعة الأرقام من 1 إلى 5. المتغير i
يبدأ بالقيمة 1. الشرط i <= 5
صحيح، لذلك يتم تنفيذ كتلة الأوامر داخل الحلقة، والتي تطبع قيمة i
ثم تزيدها بمقدار 1. تستمر هذه العملية حتى يصبح i
مساويًا لـ 6، عندها يصبح الشرط خاطئًا ويتوقف تنفيذ الحلقة.
ملاحظات مهمة:
- الحلقات اللانهائية: إذا لم يتم تحديث المتغير المستخدم في الشرط بشكل صحيح داخل الحلقة، قد يصبح الشرط صحيحًا دائمًا، مما يؤدي إلى حلقة لا نهائية. يجب التأكد دائمًا من وجود آلية لتغيير قيمة الشرط داخل الحلقة لضمان توقفها في النهاية. في المثال السابق، الأمر
i++;
ضروري لتجنب حلقة لا نهائية. - الشرط قبل التنفيذ: يتم تقييم الشرط قبل تنفيذ كتلة الأوامر. هذا يعني أنه إذا كان الشرط خاطئًا في البداية، فلن يتم تنفيذ كتلة الأوامر ولو مرة واحدة.
- استخدامات حلقة
while
: تُستخدم حلقةwhile
في العديد من الحالات، مثل:- قراءة البيانات من ملف حتى الوصول إلى نهاية الملف.
- التحقق من صحة مدخلات المستخدم.
- تنفيذ عمليات متكررة حتى تحقق شرط معين.
مقارنة بين while
و for
:
تُستخدم كل من while
و for
للتكرار، ولكن هناك بعض الاختلافات:
- تُستخدم حلقة
for
عادةً عندما يكون عدد التكرارات معروفًا مسبقًا. - تُستخدم حلقة
while
عادةً عندما يكون عدد التكرارات غير معروف مسبقًا ويعتمد على شرط معين.
باختصار، حلقة while
هي أداة في لغة C لتنفيذ كود بشكل متكرر بناءً