ביטויים בוליאניים מורכבים
הוצג| English | משמעות |
|---|---|
| AND/ænd/ | אנד (וגם) |
| OR/ɔː/ | או |
| NOT/nɒt/ | לא (חוסר) |
| short-circuit evaluation/ʃɔːt ˈsɜːkɪt ɪˌvæljuːˈeɪʃn/ | הערכת קצר-מסלול |
AND ו-OR
- שלב תנאים באמצעות
&&(לוגיקת AND) ו-||(לוגיקת OR). a && bהואtrueרק כאשר שניהם הםtrue.a || bהואtrueכאשר אחד לפחות הואtrue.- "האם המספר בין 1 ל-10?" →
x >= 1 && x <= 10.
NOT הפוכים
!(לוגיקת NOT) הופך בוליאני:!trueהואfalse,!falseהואtrue.!(x > 5)הואtrueבדיוק כאשרxאינו גדול מ-5.- NOT פועל על הביטוי שממנו — השתמש בסוגריים לבהירות.
- כפילת שלילות מבטלת זו את זו:
!!aשווה לa.
ביצוע קצר
&&ו||נעצרים ברגע שהתוצאה ידועה — זהו ביצוע קצר.- עבור
a && b: אםaהואfalse, התוצאה היאfalseו-bלא מופעל לעולם. - עבור
a || b: אםaהואtrue, התוצאה היאtrueו-bמוותר. - דבר זה מאפשר הגנה:
x != 0 && 10 / x > 2נמנע מחלוקה באפס.
טבלאות אמת וסוגריים
- טבלת אמת מפרטת כל שילוב של קלט ותוצאת הביטוי.
- עם משתנים שניים יש $4$ שורות; בנה טבלה כדי לבדוק לוגיקה מסורבלת.
- השתמש ב-סוגריים כדי להפוך את העדיפות למפורשת:
(a && b) || c. - ללא סוגריים,
&&נקשר חזק יותר מ-||— מקור נפוץ לבלבול.
הביצוע הקצר אינו רק אופטימיזציה — הוא יכול למנוע שגיאות. ב-x != 0 && 10 / x > 2, אם x הוא 0 הצד השמאלי הוא false, ולכן Java מעולם לא מעריך את 10 / x ונמנעת מחלוקה באפס. הפוך את הסדר והתוכנית תתמוטט. בנוסף, && נקשר חזק יותר מ-||, ולכן יש לסגיר בין ביטויים מעורבים בסוגריים כדי לומר בדיוק מה הכוונה.
האם x מחוץ לטווח 1–10?
x < 1 || x > 10→trueכאשרxקטן מדי או גדול מדי.x = 15→false || true→true(חוץ).x = 5→false || false→false(בתוך).
שלבבו תנאים עם && (שניהם נכונים), || (אחד לפחות נכון), ו**!** (הפוך). Java משתמשת בחישוב קצר: &&/|| נעצרים ברגע שהתוצאה ידועה (שימושי לגארדים כמו x != 0 && 10/x > 2). בחרו טבלת אמת ללוגיקה מורכבת והשתמשו בסוגריים – && יש לו עדיפות גבוהה יותר מאשר ||.
AND של שני תנאים
&& הוא נכון רק כאשר שני הקלטות נכונים.
a && b הוא נכון כאשר...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
&& (AND) דורש שהשניים יפעילים יהיו נכונים.
ב- a && b, אם a הוא לא נכון, אז b הוא...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
&& עובר בחיתוך קצר: צד שמאל לא נכון גורם לתוצאה להיות לא נכונה מיידית.
!(true) מוערך ללא נכון.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
! הפוך את הערך הבוליאני.
עם x = 5, מה המערך x < 1 || x > 10 מעריך?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
false || false → false (5 נמצא בתוך 1..10).
התנהגות שבה && ו|| מפסיקים ברגע שהתוצאה ידועה נקראת השוואת___-מסילה (מילה אחת).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
השוואת מסילה קצרה נעצרת מוקדם.