الحلقة while في البرمجة
المسار: أساسيات البرمجة الوحدة: حلقات التكرار
مدخل إلى الدرس: الحلقة while في البرمجة
مفهوم الحلقة while نستخدم الحلقة while لإعادة تنفيذ الكود نفسه أكثر من مرة و بشكل خاص إن أردنا تنفيذ الكود عدد غير معروف من المرّات بمعنى أننا لا نعرف...
طريقة الدراسة: اقرأ التعريف، تتبّع المثال في الشرح، نفّذه بنفسك، ثم اختبر النتيجة والحالات الاستثنائية قبل الانتقال.
مفهوم الحلقة while
نستخدم الحلقة while لإعادة تنفيذ الكود نفسه أكثر من مرة و بشكل خاص إن أردنا تنفيذ الكود عدد غير معروف من المرّات بمعنى أننا لا نعرف أساساً كم مرة بالضبط يجب أن يعاد تنفيذ الكود و لكننا نستمر في تنفيذه طالما أن الشرط الذي وضعناه في الحلقة لا يزال يتحقق.
نستخدم هذه الحلقة لأغراض عديدة، فمثلاً حين يكون لدينا مجموعة من القيم (مصفوفة من القيم) و نريد معرفة ما إن كانت تحتوي على قيمة معينة أم لا فإننا نستخدمها لأجل ذلك لأننا في تلك الحالة نستمر في البحث طالما أن القيمة التي نبحث عنها لم نجدها بعد. هذا الأمر سيمر معك في دروس لاحقة.
في البرامج التي نتعامل فيها مع الملفات نستخدم هذه الحلقة عادةً حين نقوم بقراءة محتوى هذا الملف حرفاً حرفاً لأجل عرضه للمستخدم، فهنا نستمر في ذلك إلى أن نجد أن الملف لم يعد فيه أي أحرف.
طريقة إستخدامها
بشكل عام نستخدم هذه الحلقة على النحو التالي.
{
// statements
}
- condition هنا نضع الشرط الذي يحدد ما إن كانت الحلقة يجب تتوقف عن تكرار الكود الموجود فيها أم لا. إذاً في كل دورة يتم التأكد أولاً إذا تحقق هذا الشرط أم لا. طالما أنه يتحقق، أي نتيجة الشرط تساوي
trueفهذا يعني أنه سيتم تكرار الكود. - statements هنا نضع جميع الأوامر التي نريدها أن تتنفذ في كل دورة. بعد أن تتنفذ جميع الأوامر سيصعد المحرر إلى الشرط الموضوع في الحلقة ليرى ما إن كان يجب إعادة تنفيذ هذه الأوامر أم لا.
في حال كنا سنستخدم هذه الحلقة لتنفيذ الأوامر عدد محدد من المرات، يجب أن نعرّف قبلها متغير لاستخدامه كعدّاد فيها, و في آخر كل دورة في الحلقة يجب أن نضيف أو ننقص قيمة العداد تماماً كما نفعل مع الحلقة for مما يعني أننا سنتخدمها على النحو التالي.
while (condition)
{
// statements
increment أو decrement;
}
- initialization هنا نقوم بتعريف المتغير الذي سنستخدمه كعداد في الحلقة.
- condition هنا نضع الشرط الذي يحدد ما إن كانت الحلقة يجب تتوقف عن تنفيذ الأوامر الموجود فيها أم لا.
- statements هنا نضع جميع الأوامر التي نريدها أن تتنفذ في كل دورة.
- increment أو decrement هنا نقوم بزيادة أو إنقاص قيمة العداد و بالطبع هذا الأمر سيتنفذ في نهاية كل دورة. و بالطبع بعدها سيصعد المحرر إلى الشرط الموضوع في الحلقة ليرى ما إن كان يجب إعادة تنفيذ الاوامر الموضوعة فيها أم لا.
لا تقلق أبداً إذا لم تفهم ما قلناه حتى الآن لأنك ستفهم ذلك من الأمثلة و التمارين التي ستمر معك.
مثال حول الحلقة while
في المثال التالي قمنا بتعريف حلقة تطبع كلمة Adeeb على سطر منفرد 3 مرات.
الكود
var i=1; while (i<=3) { write("Adeeb\n"); i++; }
النتيجة
Adeeb
Adeeb
تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.
تمرين تطبيقي: أعد كتابة المثال بنفسك، غيّر قيمة واحدة، وتوقع الناتج قبل التنفيذ.
تمارين حول الحلقة while
التمرين الأول
بواسطة الحلقة while إطبع جميع الأرقام الموجودة من 1 إلى 5 مع إظهار كل رقم منهم على سطر منفرد.
التمرين الثاني
- أطلب من المستخدم إدخال رقم و خزّنه في متغير إسمه
n. - بواسطة الحلقة
whileإطبع جميع الأرقام الموجودة من1إلىnمع إظهار كل رقم منهم على سطر منفرد.
التمرين الثالث
بواسطة الحلقة while إطبع جميع الأرقام الموجودة من 5 إلى 1 مع إظهار كل رقم منهم على سطر منفرد.
التمرين الرابع
- أطلب من المستخدم إدخال رقم و خزّنه في متغير إسمه
n. - بواسطة الحلقة
whileإطبع جميع الأرقام الموجودة منnإلى1مع إظهار كل رقم منهم على سطر منفرد.
مراجعة وتمرين تثبيت المهارة
اختبار سريع: اشرح بعبارتك معنى «الحلقة while في البرمجة»، ثم بيّن أين ستستخدمه داخل برنامج صغير لحل مشكلة يومية مع مدخلات ونتائج يمكن التحقق منها، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.
تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.
الدرس التالي: الحلقة do while في البرمجة. من الأفضل إنهاء التجربة الحالية قبل متابعة الدرس التالي.