شرح شامل لجملة do while في لغة C مع أمثلة عملية

1. المقدمة

أهمية التكرار في لغة C

في البرمجة، تعتبر عمليات التكرار أو “الحلقات” من العناصر الأساسية لتنفيذ نفس الإجراء عدة مرات. في لغة C، تُستخدم عبارات for وwhile وأيضًا do while (موضوع هذا المقال) لتنفيذ التكرارات. سنركز هنا على جملة do while، نشرح أساسيات استخدامها مع أمثلة عملية.

侍エンジニア塾

2. أساسيات جملة do while

البنية الأساسية لجملة do while

تضمن جملة do while تنفيذ كود الحلقة مرة واحدة على الأقل. تكون الصيغة كما يلي:

do {
    // الكود المراد تنفيذه
} while (الشرط);

في هذه الصيغة، يتم أولاً تنفيذ الكود الموجود داخل كتلة do، ثم يتم تقييم الشرط. إذا كان الشرط true، تتكرر الحلقة، وإذا كان false، تنتهي الحلقة.

الفرق بين جملة while و do while

في جملة while، يتم تقييم الشرط أولاً، وإذا كان true، ينفذ الكود داخل الحلقة. أما في جملة do while، يتم تنفيذ الكود أولاً حتى قبل التحقق من الشرط، وهذا يضمن تنفيذ الكود مرة واحدة على الأقل.

3. متى تستخدم جملة do while

إعادة إدخال بيانات المستخدم

تُستخدم جملة do while بكفاءة عند الحاجة للتحقق من إدخال المستخدم، مثل إعادة طلب كلمة المرور حتى يتم إدخالها بشكل صحيح. يمكنك استخدام do while لتنفيذ عملية الإدخال والتحقق بسهولة.

تكرار العمليات في الألعاب

في برمجة الألعاب، تُستخدم جملة do while لتكرار أحداث معينة حتى يختار اللاعب الاستمرار باللعب. طالما يختار اللاعب “متابعة اللعب”، تستمر الحلقة في التنفيذ.

4. مثال برمجي على جملة do while

مثال أساسي على جملة do while

فيما يلي مثال يوضح الاستخدام الأساسي لجملة do while:

#include <stdio.h>

int main() {
    int i = 0;

    do {
        printf("العدد: %dn", i);
        i++;
    } while (i < 5);

    return 0;
}

في هذا المثال، يتم تنفيذ الكود داخل كتلة do أولاً، وتستمر الحلقة طالما أن قيمة i أقل من 5. لهذا يتم طباعة الأرقام من 0 إلى 4.

مثال لإدخال المستخدم

مثال على تكرار إدخال المستخدم حتى يتم إدخال قيمة ضمن نطاق معين:

#include <stdio.h>

int main() {
    int number;

    do {
        printf("أدخل رقمًا بين 1 و10: ");
        scanf("%d", &number);
    } while (number < 1 || number > 10);

    printf("الرقم المدخل: %dn", number);

    return 0;
}

يطلب هذا البرنامج من المستخدم إدخال رقم بين 1 و10. إذا كانت القيمة خارج النطاق، يطلب إعادة الإدخال حتى يحصل على رقم صحيح.

5. الحلقات اللانهائية والتحكم بها

إنشاء حلقة لانهائية

يمكن استخدام جملة do while لإنشاء حلقة لانهائية إذا كان الشرط دائمًا true:

do {
    // كود يتكرر إلى ما لا نهاية
} while (1);

كيفية التحكم في الحلقات اللانهائية

للتحكم في الحلقات اللانهائية، يمكنك استخدام أوامر break وcontinue:

  • جملة break: للخروج من الحلقة مباشرة.
  • جملة continue: لتخطي ما تبقى من الحلقة والانتقال إلى التكرار التالي.

مثال على استخدام break للخروج من حلقة لانهائية:

#include <stdio.h>

int main() {
    int count = 0;

    do {
        printf("عدد التكرار: %dn", count);
        count++;
        if (count > 5) {
            break;
        }
    } while (1);

    return 0;
}

في هذا المثال، عندما تصبح قيمة count أكبر من 5، يتم تنفيذ جملة break للخروج من الحلقة.

6. استخدام شروط متعددة في جملة do while

كيفية استخدام أكثر من شرط

يمكنك استخدام عوامل منطقية مثل && (و) أو || (أو) مع جملة do while:

do {
    // كود التنفيذ
} while (الشرط1 && الشرط2);

مثال على شروط معقدة

في المثال التالي، يتحقق البرنامج مما إذا كان إدخال المستخدم بين 1 و100، وإذا لم يكن كذلك، يطلب إعادة الإدخال:

#include <stdio.h>

int main() {
    int number;

    do {
        printf("أدخل رقمًا بين 1 و100: ");
        scanf("%d", &number);
    } while (number < 1 || number > 100);

    printf("الرقم المدخل: %dn", number);

    return 0;
}

إذا لم تكن القيمة ضمن النطاق 1 إلى 100، يطلب البرنامج إعادة الإدخال.

7. الخلاصة

جملة do while مفيدة عندما ترغب بتنفيذ الحلقة مرة واحدة على الأقل. من خلال التمييز بين جملتي while وdo while، يمكنك جعل برنامجك أكثر مرونة. تعلم أيضًا كيفية التحكم في الحلقات باستخدام break وcontinue، واستكشاف استخدام الشروط المتعددة، لتتقن تكرار الحلقات في لغة C بشكل احترافي.

8. أسئلة تدريبية ونماذج حلول

السؤال

اكتب برنامجًا يطلب من المستخدم إدخال عدد صحيح بين 1 و10. إذا لم يكن الإدخال صحيحًا، يطلب إعادة الإدخال حتى يحصل على قيمة صحيحة، ثم يعرض الرقم المدخل مضروبًا في 2.

نموذج الحل

#include <stdio.h>

int main() {
    int number;

    do {
        printf("أدخل رقمًا بين 1 و10: ");
        scanf("%d", &number);
    } while (number < 1 || number > 10);

    printf("الرقم المدخل مضروب في 2: %dn", number * 2);

    return 0;
}

في هذا المثال التدريبي، استخدمنا جملة do while للتحقق من إدخال المستخدم وإعادة الإدخال إذا كانت القيمة خارج النطاق المطلوب.

9. معلومات إضافية وخطوات تالية

بعد إتقان جملة do while، من المفيد التعرف على الفروق بينها وبين جمل التكرار الأخرى مثل for وwhile. كما أن تعلم موضوع المؤشرات في لغة C هو الخطوة التالية لتطوير مهاراتك البرمجية، حيث يفتح لك المجال لكتابة برامج أكثر تقدماً. ننصحك بالانتقال لدراسة المؤشرات بعد ذلك.

侍エンジニア塾