في لغة C، تُستخدم الكلمتان المفتاحيتان break و continue للتحكم في تدفق الحلقات (loops) مثل for و while و do-while. إليك شرح مفصل لكل منهما:

1. break:

  • الوظيفة: تُستخدم break للخروج فورًا من الحلقة التي توجد بداخلها. بغض النظر عن الشرط الذي تتحقق منه الحلقة، بمجرد تنفيذ break، يتوقف تنفيذ الحلقة تمامًا وينتقل التحكم إلى الأمر التالي بعد الحلقة.
  • الاستخدام: تُستخدم عادةً في الحالات التالية:
    • الخروج من حلقة بمجرد العثور على قيمة معينة.
    • الخروج من حلقة عند حدوث خطأ أو حالة غير متوقعة.
    • في عبارة switch للخروج من كل حالة بعد تنفيذها.
  • مثال:
C
#include <stdio.h>

int main() {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // الخروج من الحلقة عندما يصبح i مساويًا لـ 5
}
printf("%d ", i);
}
printf("\nانتهى البرنامج");
return 0;
}

مخرجات البرنامج:

1 2 3 4
انتهى البرنامج

في هذا المثال، بمجرد أن يصبح i مساويًا لـ 5، يتم تنفيذ break، مما يؤدي إلى الخروج من حلقة for فورًا، وبالتالي لا يتم طباعة الأرقام 5 و 6 و 7 و 8 و 9 و 10.

2. continue:

  • الوظيفة: تُستخدم continue لتخطي التكرار الحالي في الحلقة والانتقال مباشرة إلى التكرار التالي. بمعنى آخر، تتخطى continue بقية الأوامر داخل الحلقة للدورة الحالية فقط، ثم تعود إلى بداية الحلقة لفحص شرط الاستمرار في التكرار.
  • الاستخدام: تُستخدم عادةً لتخطي معالجة بعض الحالات في الحلقة دون الخروج منها تمامًا.
  • مثال:
C
#include <stdio.h>

int main() {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
continue; // تخطي طباعة الرقم 5
}
printf("%d ", i);
}
printf("\nانتهى البرنامج");
return 0;
}

مخرجات البرنامج:

1 2 3 4 6 7 8 9 10
انتهى البرنامج

في هذا المثال، عندما يصبح i مساويًا لـ 5، يتم تنفيذ continue، مما يؤدي إلى تخطي أمر printf في هذه الدورة تحديدًا، وبالتالي لا يتم طباعة الرقم 5، لكن الحلقة تستمر في التكرار بشكل طبيعي للأرقام الأخرى.

الخلاصة:

  • break تُنهي الحلقة تمامًا.
  • continue تُنهي الدورة الحالية فقط وتنتقل إلى الدورة التالية.

باختصار، break للخروج، continue للتخطي. استخدام هذين الأمرين بشكل صحيح يُمكنك من التحكم بفعالية في سير تنفيذ الحلقات في برنامجك. أتمنى أن يكون هذا الشرح واضحًا ومفيدًا.