PracticU

Operators Precedence

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › Operators Precedence
Operators Precedence
השיעור מסביר את סדר הקדימויות בין האופרטורים הלוגיים לאופרטורי ההשוואה, כדי להבין איך תנאי מורכב מחושב.
סדר הקדימויות
1. NOT: האופרטור החזק ביותר, והוא מופעל ראשון. לכן ! על ביטוי השוואה בלי סוגריים לא עובד, כי NOT מופעל על הערך הראשון ולא על כל הביטוי.
2. אופרטורי השוואה: <, >, <=, >=, == ו-!= מחושבים אחרי NOT.
3. AND: מחושב לפני OR.
4. OR: החלש ביותר בקבוצה הזאת.
5. סוגריים: קודמים לכל, ומאפשרים לשנות את הסדר. למשל לחשב קודם את ה-OR ורק אחר כך את ה-AND.
איך זה עובד
המחשב לא מחשב תנאי מערבב משמאל לימין. הוא פותר לפי הקדימות, ורק אחר כך מחזיר true או false לכל החלקים. כשיש ערבוב של AND ו-OR בלי סוגריים, קודם מחושב ה-AND.
שימו לב
- בתנאים מורכבים עדיף להוסיף סוגריים, גם כשאפשר בלעדיהם. הקוד נקרא טוב יותר והסדר ברור.
כשמחשבים לפי הסדר הזה ומוסיפים סוגריים במקום הנכון, קל לקרוא ולבדוק תנאי מורכב.
השיעור הבא בקורס: תרגול על Logical Operators

פרקי ההרצאה: Operators Precedence

  1. 00:00

    מבוא לקדימות בין אופרטורים

  2. 00:41

    סדר הקדימות: NOT חזק מכולם

  3. 01:19

    שימוש בסוגריים לביצוע NOT על השוואה

  4. 01:56

    סדר ביצוע של AND ו-OR

  5. 03:31

    סדר הקדימות המלא מהחזק לחלש

  6. 04:29

    דוגמה מעשית לסדר הביצוע

  7. 05:05

    שינוי הקדימות בעזרת סוגריים

תמלול ההרצאה: Operators Precedence

הטקסט המלא של הדקות הראשונות בהרצאה «Operators Precedence» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:18

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

  3. 00:32

    אז האופרטור החזק ביותר בכל הסיפור הזה זה not, הוא האופרטור שהמחשב מעריך ראשון. זאת אומרת שאם אנחנו עושים משהו כזה, בוא נניח לדוגמה אנחנו עושים int if a not a גדול מ-b.

  4. 00:52

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

  5. 01:24

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

  6. 01:42

    אז אופרטור not זה האופרטור החזק ביותר. בואו רגע ניפטר מזה ונעבור למצב של end ו-or. אז אם יש לנו פה איזשהו תנאי or תנאי end תנאי, מה בעצם המחשב מבצע קודם כל?

  7. 02:05

    האם הוא עושה את זה לפי הסדר משמאל לימין ואז הוא מחזיר בעצם את התוצאה וממשיך לעשות אותה ביחד עם האופרטור הבא בתור.

  8. 02:14

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

  9. 02:35

    ה-end יותר חזק מה-or. זאת אומרת שמה שהמחשב יבצע זה את הבדיקה הזאת. האם התנאי הזה שמשמאל ל-end וגם התנאי הזה, מה הם בדיוק מחזירים לי?

  10. 02:51

    יוחזר כאן או true או false. לאחר מכן המחשב יבצע את זה ביחד עם ה-or. זאת אומרת, אם יש לנו מצב של or וor וor וor כל הזמן אחד ביחד עם השני, כמובן שהמחשב יכול לעשות את הכל משמאל לימין, לבצע את שני אלה, להחזיר תוצאה ואז לבצע את התוצאה ביחד עם זה, להחזיר תוצאה ואז לבצע אותו ביחד עם זה וכן

  11. 03:19

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

  12. 03:47

    לאחר מכן אנחנו מקבלים את אופרטורי ההשוואה, Comparison Operators. לאחר מכן אנחנו מקבלים את ה-AND, לאחר מכן אנחנו מקבלים את ה-OR, שהוא הכי חלש בקבוצה הזאת.

  13. 04:07

    אם אנחנו משווים את כל האופרטורים ששייכים לתנאים בעצם. זאת אומרת שאם יש לי פה איזה משהו כזה a גדול מ-b, c שווה 19 ו-d קטן מ-8 אז ברור שקודם כל האופרטורים, קודם כל הסוגריים יתבצעו אבל אם אין לי סוגריים מה בעצם המחשב יבצע

  14. 04:36

    כאשר יש לי פה את כל סוגי האופרטורים האלה. אז למעשה מה שהוא מבצע זה אמרנו קודם כל את ה-NOT, הוא ינסה לבצע את ה-NOT, במקרה הזה A יהיה חייב להיות בולעני ואז נניח פה הוא כבר אי אפשר גדול מ-A, אפשר רק שווה ל-B שגם הוא בולעני ואז מה שהמחשב ינסה לבצע וזה דבר ראשון, לאחר מכן הוא יבצע את אופרטורי ההשוואה 1,

  15. 05:05

    2, 3, לאחר מכן הוא יבצע את ה-ENDים ואז הוא ישלים אותם עם ה-ORים. זה בעצם הקצב או בעצם הקדימות שבו הוא עובד. אבל אנחנו כמובן יכולים לשנות את זה על ידי

ההרצאה הקודמת: Logical NOT Operator

ההרצאה הבאה: תרגול על Logical Operators

הרצאות קשורות מקורסים אחרים

  • אופרטורים operators is and as

קורסים נוספים במסלול

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven