1. المقدمة
تُعتبر لغة C من لغات البرمجة القوية والبسيطة في الوقت نفسه، وتُستخدم على نطاق واسع. من بين مكوناتها الأساسية، تُعد “التفرعات الشرطية” أداة مهمة للتحكم في سلوك البرنامج. على وجه الخصوص، فإن استخدام عبارة if للتعامل مع شروط متعددة أمر ضروري لتنفيذ منطق برمجي معقد.
في هذه المقالة، سنشرح بالتفصيل كيفية تحديد شروط متعددة باستخدام عبارة if في لغة C، بطريقة مبسطة تساعد المبتدئين على الفهم. سنغطي كل شيء من البنية الأساسية وحتى الأمثلة التطبيقية، لتكون مرجعًا شاملاً لك.
2. البنية الأساسية لعبارة if في لغة C
ما هي عبارة if؟
تُستخدم عبارة if للتحقق مما إذا كان الشرط المحدد “صحيحًا” أم لا، وإذا تحقق الشرط، يتم تنفيذ تعليمات معينة. في لغة C، يتم كتابة عبارة if كما يلي:
if (شرط) {
// التعليمات التي تُنفذ إذا تحقق الشرط
}
مثال أساسي
فيما يلي مثال لعبارة if تتحقق مما إذا كانت قيمة المتغير x
موجبة:
#include <stdio.h>
int main() {
int x = 10;
if (x > 0) {
printf("x هو رقم موجب.\n");
}
return 0;
}
في هذا الكود، إذا كانت قيمة x
أكبر من 0، يتم تنفيذ printf
.
نقاط مهمة في شروط if
- يمكن أن تحتوي الشروط على أرقام أو متغيرات أو معاملات منطقية (
&&
,||
,!
). - في لغة C، أي قيمة غير 0 تُعتبر “صحيحة”، بينما 0 تُعتبر “خاطئة”.
3. أنواع ومعاني المعاملات المنطقية في C
ما هي المعاملات المنطقية؟
عند التعامل مع شروط متعددة، نحتاج إلى استخدام المعاملات المنطقية لدمج الشروط. في لغة C، هناك ثلاثة معاملات منطقية رئيسية:
الضرب المنطقي (AND: &&
)
- يتحقق الشرط إذا كانت جميع الشروط “صحيحة”.
- مثال: التحقق مما إذا كانت قيمة
a
أكبر أو تساوي 10 وأصغر أو تساوي 20.
if (a >= 10 && a <= 20) {
printf("a بين 10 و20.\n");
}
الجمع المنطقي (OR: ||
)
- يتحقق الشرط إذا كان أحد الشروط على الأقل “صحيحًا”.
- مثال: التحقق مما إذا كانت قيمة
b
تساوي 0 أو 100.
if (b == 0 || b == 100) {
printf("b تساوي 0 أو 100.\n");
}
النفي المنطقي (NOT: !
)
- يعكس نتيجة الشرط: “خطأ” يصبح “صحيح”، و”صحيح” يصبح “خطأ”.
- مثال: التحقق مما إذا كانت قيمة
c
لا تساوي 0.
if (!(c == 0)) {
printf("c لا تساوي 0.\n");
}
ملاحظات
- استخدم الأقواس لتحسين وضوح الشروط عند دمج المعاملات المنطقية.
- مثال:
(a > 0 && b < 10) || c == 5
4. كيفية دمج شروط متعددة في C
ما هو دمج الشروط المتعددة؟
في لغة C، يمكننا دمج شروط متعددة داخل عبارة if للحصول على منطق أكثر تعقيدًا مع كتابة مختصرة. يتم ذلك باستخدام المعاملات المنطقية (&&
، ||
) والأقواس.
مثال على دمج الشروط
في المثال التالي، يتم تنفيذ تعليمات معينة إذا كانت x
بين 10 و20، وكانت y
أقل من 30:
#include <stdio.h>
int main() {
int x = 15;
int y = 25;
if ((x >= 10 && x <= 20) && y < 30) {
printf("x بين 10 و20، و y أقل من 30.\n");
} else {
printf("الشروط غير محققة.\n");
}
return 0;
}
نصائح لكتابة الشروط بوضوح
- استخدم الأقواس
- لإيضاح أولوية تنفيذ الشروط.
- قسّم الشروط
- ضع الشروط المعقدة في متغيرات لجعل الكود أبسط.
5. استخدام else if للتفرعات الشرطية المتعددة
ما هي else if؟
تسمح else if بالتحقق من عدة شروط بالترتيب وتنفيذ التعليمات المناسبة لكل شرط.
مثال على else if
#include <stdio.h>
int main() {
int num;
printf("أدخل رقمًا: ");
scanf("%d", &num);
if (num > 0) {
printf("الرقم موجب.\n");
} else if (num < 0) {
printf("الرقم سالب.\n");
} else {
printf("الرقم يساوي صفر.\n");
}
return 0;
}
6. التفرعات المتداخلة باستخدام if
مثال على if متداخلة
#include <stdio.h>
int main() {
int x = 10;
int y = 5;
if (x > 0) {
if (y > 0) {
printf("x و y كلاهما موجب.\n");
} else {
printf("x موجب، لكن y ليس موجبًا.\n");
}
} else {
printf("x ليس موجبًا.\n");
}
return 0;
}
7. مثال عملي: برنامج يتحقق من شروط متعددة
المثال 1: التحقق من رقم ضمن نطاق معين
#include <stdio.h>
int main() {
int number;
printf("أدخل رقمًا: ");
scanf("%d", &number);
if (number >= 10 && number <= 20) {
printf("الرقم بين 10 و20.\n");
} else {
printf("الرقم خارج النطاق.\n");
}
return 0;
}
8. الأسئلة الشائعة (FAQ)
س1: لماذا لا تعمل الشروط المتعددة؟
- السبب: عدم فهم ترتيب أولوية تنفيذ الشروط.
- الحل: استخدم الأقواس لتوضيح المقصود.
9. الخلاصة
تعلم كيفية استخدام عبارة if والشروط المتعددة في لغة C لتحقيق برامج أكثر مرونة وكفاءة.