logo

קדימות Java Operator

בחלק זה נלמד את ה מַפעִיל עדיפות בג'אווה יחד עם דוגמאות.

מהי עדיפות מפעיל?

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

java xor

בזמן פתרון ביטוי יש לזכור שני דברים, הראשון הוא א עֲדִיפוּת והשני הוא אסוציאטיביות .

קדימות Java Operator

עֲדִיפוּת

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

אסוציאטיביות

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

טבלת קדימות מפעילי 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 בגלל אסוציאטיביות.