פעולות לוגיות
ישנם מספר אופרטורים לוגיים בינאריים ואחד אונרי. הטיעונים לכל האופרטורים הללו הם מילוליות לוגיות (קבועים), משתנים לוגיים וביטויים בעלי ערך לוגי.
מפעילים:
!
- "שלילה", אופרטור לא ארי, משנה את המשמעות להיפך (היפוך: הופך שקר לאמת, והופך אמת לשקר).
&&
- "ו" לוגי ("צירוף", "צומת"), פעולה בינארית, מחזירה אמת אם ורק אם שני האופרנדים נכונים.
||
- "או" לוגי ("ניתוק", "איחוד"), פעולה בינארית, מחזירה ערך אמיתי כאשר לפחות אחד מהאופרנדים נכון.
לאופרטורים לוגיים יש את העדיפות הבאה: שלילה, צירוף, ניתוק. בדיוק כמו במקרה של אופרטורים אריתמטיים, משתמשים בסוגריים לתיקון קדימות. אם זוג אחד של סוגריים מקונן בתוך זוג אחר של סוגריים, הערך בסוגריים הפנימיים מוערך תחילה. דוגמאות:
boolean a = true;
boolean b;
b = a || true;
b = !b;
System.out.println(b);
a = a || b;
boolean c;
c = a && (a||b);
System.out.println(c);
ב-Java, לא ניתן להמיר סוגים בוליאני ומספרי זה לזה.
מפעילי השוואה
רוב אופרטורי ההשוואה חלים על ערכים מספריים. כל אלו הם אופרטורים בינאריים שיש להם שני ארגומנטים מספריים, אך מחזירים ערך בוליאני.
>
- מפעיל "יותר".
>=
- אופרטור "גדול או שווה".
<
- מפעיל "פחות מ".
<=
- אופרטור "פחות או שווה".
!=
- אופרטור "לא שווה".
==
- אופרטור שקילות (שוויון).
ניתן להשתמש בשני האופרטורים האחרונים לא רק עבור ערכים מספריים, אלא גם, למשל, עבור ערכים לוגיים. דוגמאות:
boolean m;
m = 5 >= 4;
m = 5 != 5 || false;
boolean w;
w = m == false;
System.out.println(w);
חשוב מאוד לא לבלבל את אופרטור השקילות עם אופרטור ההקצאה. בביטויים המכילים אופרטורים מסוגים שונים, מבצעים תחילה פעולות אריתמטיות, לאחר מכן פעולות השוואה, לאחר מכן פעולות לוגיות, ולבסוף הקצאה.
הצהרת אם מותנית
המפעיל
if
מבטיח שהוראה מבוצעת או מדלגת בהתאם לתנאי לוגי מוגדר. אם התנאי נכון,
ההוראה מבוצעת.
if (condition) инструкция;
במקום פקודה יכולה להיות פקודה רגילה (פקודה אחת) או פקודה מורכבת (גוש המכיל מספר פקודות, כולל הצהרות מותנות אחרות). דוגמאות (אם מצוין אפס כערכי המשתנים, החלוקה לא תתבצע והתוצאה שלה לא תוצג על המסך):
int a = 25;
if (a != 0) System.out.println( 100/a );
int b = 25;
if (b != 0) {
System.out.println( 100/b );
}
למרות העובדה שהקוד בדוגמה הראשונה נראה קומפקטי יותר, רק בדוגמה השנייה ניתן יהיה לבצע מספר הוראות אם התנאי נכון. למפעיל
if
יש פורמט עם חלק נוסף
else
:
if (condition)
инструкция1;
else
инструкция2;
אם
התנאי אמת, מופעלת הוראה פשוטה או מורכבת1 , ואם התנאי הוא שקר, מופעלת
הוראה פשוטה או מורכבת2 . דוגמא:
int a = 0;
if (a != 0) System.out.println( 100/a );
else System.out.println("На нуль делить нельзя");
GO TO FULL VERSION