في لغة 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
للتخطي. استخدام هذين الأمرين بشكل صحيح يُمكنك من التحكم بفعالية في سير تنفيذ الحلقات في برنامجك. أتمنى أن يكون هذا الشرح واضحًا ومفيدًا.