הסביר מפעיל סרן ב C

מתכנת להשתמש המפעילה המשולשת לקבלת החלטות במקום כבר אם ו אחרים דוחות מותנים.

המפעיל השלישי לוקח שלושה טיעונים:

  1. הראשון הוא טיעון השוואה
  2. השנייה היא התוצאה בהשוואה אמיתית
  3. השלישית היא התוצאה בהשוואה כוזבת

זה עוזר לחשוב על המפעיל השלילי כדרך קצרה או כתיבת הצהרה אם-אחרת. הנה דוגמה פשוטה קבלת ההחלטות באמצעות אם ו אחר :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

דוגמה זו אורכת יותר מ -10 שורות, אך אין זה הכרחי. אתה יכול לכתוב את התוכנית לעיל בשלוש שורות קוד בלבד באמצעות אופרטור שלישית.

תחביר

condition ? value_if_true : value_if_false

ההצהרה מעריכה value_if_trueאם conditionמתקיימת, value_if_falseואחרת.

להלן הדוגמה לעיל ששכתבה לשימוש במפעיל הטריניארי:

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. שקול את הקוד הבא:

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