בחלק זה נלמד את ה מַפעִיל עדיפות בג'אווה יחד עם דוגמאות.
מהי עדיפות מפעיל?
ה עדיפות מפעיל מייצג כיצד שני ביטויים נקשרים זה לזה. בביטוי, הוא קובע את קיבוץ האופרטורים עם אופרנדים ומחליט כיצד ביטוי יוערך.
java xor
בזמן פתרון ביטוי יש לזכור שני דברים, הראשון הוא א עֲדִיפוּת והשני הוא אסוציאטיביות .
עֲדִיפוּת
העדיפות היא העדיפות לקיבוץ סוגים שונים של אופרטורים עם האופרנדים שלהם. יש לזה משמעות רק אם לביטוי יש יותר מאופרטור אחד עם עדיפות גבוהה או נמוכה יותר. המפעילים בעלי קדימות גבוהה יותר מוערכים תחילה. אם אנו רוצים להעריך תחילה אופרטורים בעלי עדיפות נמוכה יותר, עלינו לקבץ אופרנדים באמצעות סוגריים ולאחר מכן להעריך.
אסוציאטיביות
עלינו לעקוב אחר אסוציאטיביות אם לביטוי יש יותר משני אופרטורים באותה קדימות. במקרה כזה, ניתן לפתור גם ביטוי משמאל לימין אוֹ מימין לשמאל, בהתאם לכך.
טבלת קדימות מפעילי Java
הטבלה הבאה מתארת את העדיפות והאסוציאטיביות של אופרטורים המשמשים ב-Java.
עֲדִיפוּת | מַפעִיל | סוּג | אסוציאטיביות |
---|---|---|---|
חֲמֵשׁ עֶשׂרֵה | () [] · | סוגריים מנוי למערך בחירת חברים | משמאל לימין |
14 | ++ -- | תוספת שלאחר תוספת לא נורמלי לאחר ירידה | מימין לשמאל |
13 | ++ -- + - ! ~ (סוּג) | עלייה מוקדמת לא אחת ירידה מוקדמת לא אחת Unary plus מינוס לא נורמלי שלילה לוגית לא נורית השלמה סיבית לא נעימה ליהוק מסוג לא ארי | מימין לשמאל |
12 | * / % | כֶּפֶל חֲלוּקָה מודולוס | משמאל לימין |
אחד עשר | + - | חיבור חִסוּר | משמאל לימין |
10 | << >> >>> | העברה שמאלה באופן חלקי העברה ימינה באופן חלקי עם הארכת סימן העברה ימינה באופן חלקי עם אפס הארכה | משמאל לימין |
9 | < <= > >= מופע של=> | יחסי פחות מ יחסי פחות או שווה יחסי גדול מ יחסי גדול או שווה השוואת סוגים (אובייקטים בלבד) | משמאל לימין |
8 | == != | יחסי שווה ל יחסי אינו שווה ל | משמאל לימין |
7 | & | Bitwise AND | משמאל לימין |
6 | ^ | OR בלעדי קצת | משמאל לימין |
5 | | | כולל OR | משמאל לימין |
4 | && | AND הגיוני | משמאל לימין |
3 | || | OR לוגי | משמאל לימין |
2 | ? : | טרנרי מותנה | מימין לשמאל |
1 | = += -= *= /= %= | מְשִׁימָה מטלת הוספה מטלת חיסור מטלת כפל מטלת חטיבה הקצאת מודולוס | מימין לשמאל |
הערה: גדול יותר ככל שהמספר גבוה יותר בקדימות.
דוגמה לקדימות מפעיל Java
בואו נבין את קדימות המפעיל באמצעות דוגמה. שקול את הביטוי הבא ונחש את התשובה.
1 + 5 * 3
אולי אתה חושב שהתשובה תהיה 18 אך לא כך. כי לאופרטור הכפל (*) יש עדיפות גבוהה יותר מאופרטור החיבור (+). לפיכך, הביטוי מעריך תחילה 5*3 ולאחר מכן מעריך את הביטוי הנותר, כלומר 1+15. לכן התשובה תהיה 16 .
בואו נראה דוגמה נוספת. שקול את הביטוי הבא.
לינוקס איזו פקודה
x + y * z / k
בביטוי לעיל, פעולות * ו-/ מבוצעות לפני + בגלל קדימות. y מוכפל ב-z לפני שהוא מחולק ב-k בגלל אסוציאטיביות.