1. نظرة عامة على عبارة continue
وأهميتها
ما هي عبارة continue
؟
عبارة continue
هي عبارة تحكم تُستخدم داخل الحلقات (Loops) في لغة C. يمكن استخدامها مع حلقات for
وwhile
وdo-while
، حيث تتيح الانتقال إلى التكرار التالي من الحلقة عند تحقق شرط معين، متجاهلة ما تبقى من أوامر في التكرار الحالي. هذا يساعد على كتابة كود أكثر كفاءة من خلال تجنب العمليات غير الضرورية.
مزايا وعيوب عبارة continue
عبارة continue
مفيدة في التحكم بتدفق البرنامج، لكن الإفراط في استخدامها قد يؤثر سلباً على قابلية قراءة الكود. فعلى سبيل المثال، استخدام عدة عبارات continue
داخل نفس الحلقة قد يجعل فهم تدفق البرنامج صعباً. لذلك يجب استخدامها بحذر وفي المواقف المناسبة فقط.
2. البنية الأساسية لعبارة continue
بنية عبارة continue
بنية عبارة continue
بسيطة جداً كما يلي:
continue;
عند تنفيذ هذه العبارة، يتم إنهاء التكرار الحالي فوراً والانتقال إلى التكرار التالي من الحلقة. بهذا يمكن تجنب العمليات غير الضرورية وإنشاء برامج أكثر كفاءة.
الفرق بين continue
وbreak
تشبه عبارة continue
عبارة تحكم أخرى هي break
، لكن لكل منهما هدف مختلف. عبارة continue
تنقل البرنامج إلى التكرار التالي دون إنهاء الحلقة، بينما break
تنهي الحلقة بالكامل. لذلك يُستخدم continue
لتخطي جزء معين من التكرار، بينما يُستخدم break
للخروج من الحلقة نهائياً.
3. كيفية استخدام عبارة continue
عملياً
مثال على استخدام continue
مع حلقة for
عند استخدام عبارة continue
في حلقة for
، يمكنك الانتقال إلى التكرار التالي إذا تحقق شرط محدد. في المثال التالي، يتم تخطي الأعداد الزوجية:
#include <stdio.h>
int main() {
for(int i = 0; i < 10; i++) {
if(i % 2 == 0) {
continue; // تخطي الأعداد الزوجية
}
printf("%dn", i);
}
return 0;
}
في هذا البرنامج، عند كون i
عدد زوجي، يتم تنفيذ عبارة continue
ويُتخطى تنفيذ دالة printf
. لذلك تُطبع فقط الأعداد الفردية.
مثال على استخدام continue
مع حلقة while
يمكن استخدام continue
مع حلقة while
أيضاً. عند تنفيذها، تنتقل الحلقة مباشرة للتكرار التالي.
#include <stdio.h>
int main() {
int i = 0;
while(i < 10) {
i++;
if(i % 2 == 0) {
continue; // تخطي الأعداد الزوجية
}
printf("%dn", i);
}
return 0;
}
في هذا المثال، عندما يكون i
عدد زوجي، يتم تخطي دالة printf
وينتقل إلى التكرار التالي، فيتم طباعة الأعداد الفردية فقط.
مثال على استخدام continue
مع حلقة do-while
يمكن أيضاً استخدام continue
مع do-while
، مع ملاحظة أن هذه الحلقة تُنفذ على الأقل مرة واحدة، لذا قد يختلف سلوك continue
قليلاً.
#include <stdio.h>
int main() {
int i = 0;
do {
i++;
if(i % 2 == 0) {
continue; // تخطي الأعداد الزوجية
}
printf("%dn", i);
} while(i < 10);
return 0;
}
في هذا البرنامج، عند كون i
عدد زوجي، يتم تخطي تنفيذ printf
. وتستمر الحلقة حتى يصل i
إلى 10.

4. أمثلة متقدمة على استخدام continue
كيفية استخدام continue
في الحلقات المتداخلة
يمكن استخدام continue
أيضاً داخل الحلقات المتداخلة. في المثال التالي، يتم تخطي التكرار عندما تكون قيمة j
تساوي 2:
#include <stdio.h>
int main() {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j == 2) {
continue; // تخطي عندما تكون j=2
}
printf("i:%d, j:%dn", i, j);
}
}
return 0;
}
في هذا البرنامج، عند كون j
تساوي 2، يتم تخطي طباعة تلك القيمة، مما يؤدي إلى حذف j:2
من النتائج.
مثال على تخطي عناصر بناءً على شرط معين داخل الحلقة
عبارة continue
مفيدة جداً عند الحاجة لتخطي معالجة عناصر بناءً على شرط معين. في المثال التالي، يتم تخطي العناصر السالبة داخل مصفوفة وطباعة القيم الموجبة فقط:
#include <stdio.h>
int main() {
int data[10] = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5};
for(int i = 0; i < 10; i++) {
if(data[i] < 0) {
continue; // تخطي القيم السالبة
}
printf("%dn", data[i]);
}
return 0;
}
في هذا الكود، عندما يكون العنصر سالباً، يتم تخطيه ولا تتم طباعته، وبالتالي تتم طباعة القيم الموجبة فقط بكفاءة.
5. ملاحظات ونصائح عند استخدام عبارة continue
تأثير الاستخدام المفرط لعبارة continue
على قابلية قراءة الكود
رغم أن continue
مفيدة، إلا أن كثرة استخدامها قد تجعل الكود صعب القراءة، خصوصاً في الحلقات المتداخلة، حيث يصعب تتبع أي الأجزاء تم تخطيها. لذلك يوصى باستخدامها عند الحاجة فقط.
طرق بديلة عن استخدام continue
يمكن تحقيق نفس السلوك بدون continue
عبر استخدام شرط معكوس. مثلاً:
#include <stdio.h>
int main() {
for(int i = 0; i < 10; i++) {
if(i % 2 != 0) {
printf("%dn", i);
}
}
return 0;
}
في هذا المثال، يتم طباعة الأعداد الفردية فقط دون الحاجة إلى continue
، ما يعزز وضوح الكود.
أفضل الممارسات لتجنب تعقيد الكود
عند استخدام continue
، انتبه للنقاط التالية:
- قلل من استخدام
continue
للحفاظ على بساطة الكود. - أضف تعليقات توضح الهدف من استخدام
continue
في كل موضع. - فكر في البدائل الأخرى وحدد الأنسب للحالة.
6. تمارين عملية باستخدام continue
التمرين 1: برنامج لطباعة الأعداد مع تخطي رقم محدد
اكتب برنامجاً يطبع الأعداد من 1 إلى 10 مع تخطي رقم يُحدده المستخدم. مثلاً إذا أدخل المستخدم “3”، تكون النتيجة “1 2 4 5 6 7 8 9 10”.
#include <stdio.h>
int main() {
int num;
printf("أدخل الرقم الذي تريد تخطيه (1-10): ");
scanf("%d", &num);
for(int i = 1; i <= 10; i++) {
if(i == num) {
continue; // تخطي الرقم المحدد
}
printf("%d ", i);
}
return 0;
}
في هذا البرنامج، تُستخدم عبارة continue
لتخطي الرقم الذي حدده المستخدم وطباعة باقي الأرقام فقط.
التمرين 2: برنامج يستخدم continue
في الحلقات المتداخلة
اكتب برنامجاً بحلقتين متداخلتين يطبع جميع تراكيب i
وj
، مع تخطي j = 3
.
#include <stdio.h>
int main() {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j == 3) {
continue; // تخطي عندما j=3
}
printf("i:%d, j:%dn", i, j);
}
}
return 0;
}
هنا، يتم تخطي طباعة كل تركيب يحتوي على j=3
.
التمرين 3: معالجة بيانات المصفوفة بكفاءة مع continue
اكتب برنامجاً يعالج عناصر مصفوفة ويطبع فقط القيم الموجبة، متخطياً القيم السالبة.
#include <stdio.h>
int main() {
int data[10] = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5};
for(int i = 0; i < 10; i++) {
if(data[i] < 0) {
continue; // تخطي الأعداد السالبة
}
printf("%dn", data[i]);
}
return 0;
}
يستخدم هذا البرنامج continue
لتخطي القيم السالبة وطباعة القيم الموجبة بكفاءة.
7. الخلاصة
عبارة continue
مفيدة جداً لتخطي عمليات غير ضرورية داخل الحلقات والانتقال مباشرة للتكرار التالي. الاستخدام الصحيح لها يساعد على كتابة برامج أكثر كفاءة، لكن الإفراط فيها قد يقلل من وضوح الكود. استخدمها فقط عند الحاجة وادرس دوماً إمكانية الاستعاضة عنها بطرق أخرى عند الضرورة.
نصائح لاستخدام continue
بفعالية
- تخطي العمليات غير الضرورية داخل الحلقات لتحسين الأداء.
- تجنب الاستخدام المفرط للحفاظ على وضوح الكود.
- فكر دائماً في الحلول البديلة كالشروط أو الدوال.
للتعمق في التعلم
لتعزيز فهمك لعبارة continue
، تعرّف أيضاً على عبارات التحكم الأخرى مثل break
وreturn
، وفهم متى وأين تستخدم كل منها. كما يُنصح بتطبيق أمثلة عملية لاكتشاف فاعليتها في مواقف مختلفة من البرمجة.