العودة إلى الدورة

الكلمات المفتاحية للتحكم في التدفق: break, continue, goto

لغة C: من الصفر إلى الاحتراف - الدليل الشامل للمبتدئين

الدرس 20: الكلمات المفتاحية للتحكم في التدفق: break, continue, goto

تسمح هذه الكلمات المفتاحية بالتعديل الفوري للتنفيذ المتسلسل العادي للحلقات وجمل switch.

جملة break

تنهي فوراً أقرب حلقة (for, while, do-while) أو جملة switch تحتوي عليها. يستأنف التنفيذ عند الجملة التي تلي الهيكل الذي تم إنهاؤه مباشرة.

مثال: البحث داخل حلقة

c for (int i = 1; i <= 10; i++) { if (i == 7) { printf("تم العثور على 7! إيقاف الحلقة.\n"); break; // الخروج من الحلقة تماماً } printf("التحقق من %d...\n", i); }

جملة continue

تتخطى بقية التكرار الحالي للحلقة وتنتقل فوراً إلى التكرار التالي (تتحقق من الشرط مرة أخرى).

مثال: تخطي الأعداد الزوجية

c for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue; // تخطي الطباعة للأعداد الزوجية } printf("%d هو عدد فردي.\n", i); }

جملة goto (تجنبها قدر الإمكان)

تُستخدم goto لنقل التحكم دون قيد أو شرط إلى تسمية (label) محددة داخل نفس الدالة.

تحذير: الاستخدام المفرط لـ goto يجعل الكود معقداً، ويصعب تصحيحه، ويخلق ما يسمى بـ "كود السباغيتي". يوصى بعدم استخدامه إلا في حالات محددة لمعالجة الأخطاء أو الخروج من الحلقات العميقة المتداخلة.

c int error_state = 1; // ... كود ... if (error_state) { goto cleanup_error; } // ... المزيد من الكود ...

cleanup_error: printf("تنفيذ مهام التنظيف.\n");