logo

מפעיל מותנה ב-C

האופרטור המותנה ידוע גם בשם a מפעיל שליש . ההצהרות המותנות הן הצהרות קבלת ההחלטות התלויות בפלט של הביטוי. הוא מיוצג על ידי שני סמלים, כלומר '?' ו-':'.

כפי שאופרטור מותנה עובד על שלושה אופרנדים, כך הוא ידוע גם בתור האופרטור השלישוני.

ההתנהגות של האופרטור המותנה דומה ל-' אחרת הצהרת 'אם-אחר' היא גם הצהרת קבלת החלטות.

תחביר של אופרטור מותנה

 Expression1? expression2: expression3; 

הייצוג הציורי של התחביר לעיל מוצג להלן:

מפעיל מותנה ב-C

משמעות התחביר לעיל.

  • בתחביר לעיל, expression1 הוא תנאי בוליאני שיכול להיות ערך אמיתי או שקר.
  • אם התוצאה של expression1 היא ערך אמיתי, אז ה- expression2 יבוצע.
  • אומרים שהביטוי2 נכון רק כאשר הוא מחזיר ערך שאינו אפס.
  • אם expression1 מחזיר ערך false אז expression3 יבוצע.
  • אומרים שהביטוי3 הוא שקר רק כאשר הוא מחזיר ערך אפס.

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

 #include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; } 

בקוד לעיל, אנו לוקחים את הקלט כ'גיל' של המשתמש. לאחר לקחנו קלט, החלנו את התנאי באמצעות אופרטור מותנה. במצב זה, אנו בודקים את גיל המשתמש. אם גיל המשתמש גדול מ-18 או שווה ל-18, אזי ההצהרה1 תבוצע, כלומר, (printf('זכאי להצבעה')) אחרת, הצהרה 2 תתבצע, כלומר, (printf('לא כשיר להצבעה') ).

בואו נסתכל על הפלט של התוכנית לעיל.

אם נציין את גיל המשתמש מתחת ל-18, הפלט יהיה:

מפעיל מותנה ב-C

אם נציין את גיל המשתמש מעל 18, הפלט יהיה:

מפעיל מותנה ב-C

כפי שאנו יכולים להבחין משני הפלטים לעיל, שאם התנאי הוא אמיתי, אז ההצהרה1 מבוצעת; אחרת, הצהרה 2 תבוצע.

עד עכשיו, ראינו שאופן מותנה בודק את התנאי ובהתבסס על תנאי הוא מבצע את ההצהרות. כעת, נראה כיצד נעשה שימוש באופרטור מותנה כדי להקצות את הערך למשתנה.

isletter java

בואו נבין את התרחיש הזה באמצעות דוגמה.

 #include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; } 

בקוד שלמעלה, הכרזנו על שני משתנים, כלומר 'a' ו-'b', והקצינו ערך 5 למשתנה 'a'. לאחר ההצהרה, אנו מקצים ערך למשתנה 'b' באמצעות האופרטור המותנה. אם הערך של 'a' שווה ל-5 אז ל-'b' מוקצה ערך 3 אחרת 2.

תְפוּקָה

מפעיל מותנה ב-C

הפלט לעיל מראה שהערך של משתנה 'b' הוא 3 מכיוון שהערך של משתנה 'a' שווה ל-5.

כפי שאנו יודעים שההתנהגות של אופרטור מותנה ו'אם-אחר' דומה אבל יש ביניהם כמה הבדלים. בואו נסתכל על ההבדלים ביניהם.

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