Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

العامل الشرطي الثلاثي

جزء من قسم Fundamentals في رحلة C على Coddy — الدرس 29 من 63.

المعامل الشرطي الثلاثي هو طريقة مختصرة للتعبير عن جملة if-else في سطر واحد.

الصيغة هي:

condition ? value_if_true : value_if_false;

لنلقِ نظرة على مثال. أولاً، إليك جملة if-else التقليدية:

int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

الآن، لنقم بإعادة كتابتها باستخدام العامل الثلاثي (ternary operator):

int max = (a > b) ? a : b;

في هذا المثال:

  • a > b هو الشرط
  • إذا كان الشرط صحيحاً، يتم إرجاع a
  • إذا كان الشرط خاطئاً، يتم إرجاع b

يمكن أيضاً تداخل العامل الثلاثي (ternary operator)، ولكن هذا قد يجعل الكود أصعب في القراءة:

int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
challenge icon

التحدي

سهل

أنشئ برنامجًا يتحقق مما إذا كان الرقم "positive" أو "negative" أو "zero" باستخدام العامل الشرطي. يجب على البرنامج:

  1. أخذ مدخل صحيح (integer) من المستخدم.
  2. استخدام العامل الشرطي لتحديد ما إذا كان الرقم "positive" أو "negative" أو "zero".
  3. طباعة النتيجة بالتنسيق التالي: "The number is [positive/negative/zero]".

ورقة مرجعية

يوفر العامل الشرطي الثلاثي (ternary operator) طريقة مختصرة للتعبير عن جملة if-else في سطر واحد.

الصيغة:

condition ? value_if_true : value_if_false;

مثال يقارن بين جملة if-else التقليدية والعامل الثلاثي:

// جملة if-else التقليدية
int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

// العامل الثلاثي
int max = (a > b) ? a : b;

يمكن تداخل العامل الثلاثي، على الرغم من أن هذا يقلل من قابلية القراءة:

int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);

جرّب بنفسك

#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number);
    
    // اكتب كودك بالأسفل
    char* result = 
    
    printf("The number is %s\n", result);
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals