freeCodeCamp/guide/arabic/c/ternary-operator/index.md

2.6 KiB

title localeTitle
Ternary Operator مشغل ثلاثي

مشغل ثلاثي

يستخدم المبرمجون المشغلين الثلاثيين في C من أجل اتخاذ القرار في مكان البيانات الشرطية إذا كان الأمر آخر . المشغل الثلاثي هو مشغل يأخذ ثلاث حجج. الحجة الأولى هي حجة المقارنة ، والثاني هو النتيجة على المقارنة الحقيقية ، والثالث هو النتيجة على مقارنة خاطئة. إذا كان يساعدك على التفكير في المشغل كطريقة مختصرة لكتابة عبارة if-else.

في ما يلي مثال بسيط لصنع القرار باستخدام if and else :

`int a = 10, b = 20, c;

if (a < b) { c = a; } else { c = b; }

printf("%d", c); `

يأخذ هذا المثال أكثر من 10 أسطر ، لكن هذا ليس ضروريًا. يمكنك كتابة البرنامج أعلاه في 3 أسطر فقط من الشفرة باستخدام المشغل الثلاثي .

بناء الجملة

condition ? value_if_true : value_if_false

يثبت البيان على statement_1 إذا كانت الشرط صحيحًا ، و statement_2 على خلاف ذلك.

فيما يلي المثال أعلاه الذي تمت إعادة كتابته لاستخدام المشغل الثلاثي:

`int a = 10, b = 20, c;

c = (a < b) ? a : b;

printf("%d", c); `

يجب أن يكون إخراج المثال:

10

تم تعيين c يساوي a ، لأن الشرط a<b كان صحيحًا.

هذا يبدو بسيطا جدا ، أليس كذلك؟ لاحظ أن value_if_true و value_if_false يجب أن يكونا من نفس النوع ، ولا يمكن أن يكونا عبارات كاملة ولكن مجرد تعبيرات.

يمكن أن يتداخل المشغل الثلاثي تمامًا مثل عبارات if-else المتداخلة. فكر في عبارة if-else المتداخلة التالية:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

إليك الشفرة الموضحة أعلاه التي تمت إعادة كتابتها باستخدام المشغل الثلاثي المتداخل:

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

يجب أن يكون إخراج كل من الشفرين المذكورين أعلاه كما يلي:

3