حلقة
do...while
في لغة C هي عبارة عن هيكل تحكم بالتكرار يشبه حلقة while
، ولكنه يضمن تنفيذ الكتلة البرمجية مرة واحدة على الأقل قبل التحقق من الشرط. هذا هو الفرق الرئيسي بينهما.شرح كيفية عملها:
- التنفيذ: يتم تنفيذ كتلة الأوامر الموجودة داخل حلقة
do
أولاً. - التحقق من الشرط: بعد تنفيذ الأوامر، يتم فحص الشرط الموجود داخل
while
. - التكرار (إذا تحقق الشرط): إذا كان الشرط صحيحًا (True)، يعود البرنامج لتنفيذ كتلة الأوامر مرة أخرى، ثم يعيد فحص الشرط، وهكذا.
- الانتهاء (إذا لم يتحقق الشرط): إذا أصبح الشرط خاطئًا (False)، يتوقف التكرار، ويستمر البرنامج في تنفيذ الأوامر التي تلي حلقة
do...while
.
الصيغة العامة:
C
do { // كتلة الأوامر التي سيتم تنفيذها statement1; statement2; ...} while (condition); // الشرط الذي يتم فحصه
مثال بسيط:
C
#include <stdio.h>
int main() { int i = 0; do { printf("قيمة i هي: %d\n", i); i++; } while (i < 5); return 0;}
مخرجات البرنامج:
قيمة i هي: 0قيمة i هي: 1قيمة i هي: 2قيمة i هي: 3قيمة i هي: 4
في هذا المثال، سيتم طباعة قيمة i
من 0 إلى 4، حتى لو كانت قيمة i
في البداية أكبر من أو تساوي 5، سيتم تنفيذ حلقة do
مرة واحدة على الأقل.
متى نستخدم do...while
؟
تُستخدم حلقة do...while
عندما يكون من الضروري تنفيذ كتلة الأوامر مرة واحدة على الأقل بغض النظر عن قيمة الشرط في البداية. من الأمثلة الشائعة:
- التحقق من صحة مُدخلات المستخدم: عندما نطلب من المستخدم إدخال قيمة معينة، ونريد التحقق من صحة هذه القيمة قبل المتابعة. نستخدم
do...while
لجعل المستخدم يُدخل قيمة على الأقل، ثم نتحقق من صحتها. - القوائم والخيارات: عندما نعرض قائمة من الخيارات للمستخدم، ونريد التأكد من أنه اختار خيارًا صحيحًا.
الفرق بين while
و do...while
:
الخاصية | while | do...while |
---|---|---|
فحص الشرط | قبل تنفيذ الأوامر | بعد تنفيذ الأوامر |
عدد مرات التنفيذ | قد لا يتم التنفيذ أبدًا إذا كان الشرط خاطئًا | يتم التنفيذ مرة واحدة على الأقل |
باختصار، حلقة do...while
تضمن لك تنفيذ الأمر مرة واحدة وهذا هو اختلافها عن عنصر while
.