الدرس 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");