John Squirrels
רָמָה
San Francisco

Java Boolean

פורסם בקבוצה
המילה "בוליאנית" בהקשר של שפת ג'אווה יכולה לשמש במשמעויות שונות, אם כי קשורות מאוד. זה יכול להיות:
  • סוג פרימיטיבי בוליאני או משתנה בוליאני מסוג זה
  • מחלקה בוליאנית של Java או אובייקט עטיפה בוליאני
  • ביטוי בוליאני , ערך בוליאני, תנאי כלשהו
  • אופרטורים בוליאניים של Java
במאמר זה, אנו הולכים לכסות את כל האפשרויות הללו ולהסביר אילו מושגים עומדים בבסיס הביטויים הבוליאניים . Java בוליאני - 1

מהו בוליאני במובן הכללי

הרעיון של ביטוי בוליאני הגיע מהמתמטיקה, או ליתר דיוק, מהלוגיקה המתמטית. ביטוי בוליאני באלגברה פרופוזיציונית הוא ביטוי שניתן לומר שהוא נכון או לא נכון. לדוגמה:
"שלג הוא לבן" "תנינים יכולים לעוף" "2 + 2 = 4" "1 + 1 = 21"
יחד עם זאת, "2" או "שלג" אינם ביטויים בוליאניים .

סוג נתונים פרימיטיבי בוליאני של Java ומשתנים בוליאניים

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

boolean myBoolean; //boolean variable
myBoolean = false; 
boolean myBoolean1 = true; //another boolean variable
כאן יש לנו 2 משתנים בוליאניים . בואו נכתוב תוכנית קטנה עם דוגמה לשימוש בטיפוס בוליאני :

//boolean variable example
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       System.out.println(myBoolean);
   }
}
תוכנית זו מדפיסה "שקר" לקונסולה. אגב, משתנה בוליאני מוגדר כ-false כברירת מחדל, אבל Java לא מאפשרת לעבוד עם משתנים מקומיים לא מאותחלים.

ביטויים בוליאניים ב-Java

בנוסף לאתחול מפורש של משתנה בוליאני ל-true או false, סוג הנתונים בוליאני משמש באופן מרומז במקומות רבים. כשם שהתוצאה של כל חיבור של מספרים תהיה מספר, התוצאה של כל השוואה תהיה נכונה או לא נכונה, כלומר, היא תהיה מסוג בוליאני . המשמעות היא שבנוסף לציון ישיר של ערך בוליאני דרך הצהרת הקצאת המשתנה הבוליאני , ערכים בוליאניים נובעים מהשוואות שונות, כגון 5 > 2 , ומשמשים בעיקר בהצהרות מותנות ולולאות. הנה דוגמה לשימוש כזה בסוג בוליאני :

public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       int a = 5;
       int b = 7;
       System.out.println(a < b);
       System.out.println(0 > 7);
       System.out.println(myBoolean == false);
   }
}
הפלט הוא:
נכון שקר נכון
במקרה של a < b , האופרטור < השווה את הביטוי משמאל לביטוי מימין. הצגנו את תוצאת ההשוואה על המסך. מכיוון ש -5 < 7 (המשפט נכון), הערך true יודפס למסוף. במקרה השני, אנו מציגים השוואה ישירה של אפס ושבע, ובשלישי, אנו שואלים אם הערך של המשתנה myBoolean הוא שקר. מכיוון שזה המקרה, אנו מוציאים את הערך true . למעשה, כדי לבנות ביטויים בוליאניים ב-Java, אנו יכולים להשתמש בכל אופרטורי השוואה:
מפעילי השוואה מפעיל Java דוגמה לתפעול תוצאת הפעולה
פָּחוֹת < א < ב נכון אם a קטן מ- b אחרת שקר
גדול יותר > א > ב נכון אם a גדול מ- b , אחרת שקר
פחות מ או שווה <= a <= ב נכון אם a קטן מ- b או שהם שווים, אחרת שקר
גדול יותר או שווה >= a >= ב true , אם גדול או שווה ל- b , אחרת שקר
שווה == a == ב נכון , אם a שווה ל- b , אחרת לא נכון
לא שווה != א != ב נכון , אם a אינו שווה ל- b , אחרת שקר

היכן נעשה שימוש בערכים בוליאניים

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

public class BoolTest2 {
       public static void main(String[] args) {
           int i = 0;
           while (i <= 10)
           {
               System.out.println(i);
               i++;
           }         
      }
}
תוכנית זו מדפיסה רצף של מספרים שלמים ומגדילה אותם באחד כל עוד מתקיים התנאי בסוגריים לאחר הזמן. כלומר, בעוד שהביטוי i <=10 נכון.

אופרטורים בוליאניים של Java. בניית ביטויים בוליאניים עם אופרטורים בוליאניים

הפעולות הלוגיות (או הבוליאניות) הבאות זמינות ב-Java:
  • שלילה לוגית, זה גם לא או היפוך. ב-Java, מסומן בסמל ! לפני ביטוי.

  • לוגי ו, זה גם AND או צירוף. מסומן בסמל & בין שני הביטויים עליהם הוא מוחל.

  • לוגי או בג'אווה, זה גם OR, זה גם ניתוק. ב-Java, מסומן בסמל | בין שני ביטויים.

  • בלעדי או, XOR, ניתוק קפדני. ב-Java, הוא מסומן בסמל ^ בין שני ביטויים.

  • ב-Java, אופרטורים לוגיים כוללים את המותנה או, המסומן כ- || , כמו גם המותנה ו, && .

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

a | b == true
מפעיל ג'אווה בוליאני שֵׁם סוּג תיאור דוגמא
! "לא" הגיוני (שלילה) אונארי !x פירושו "לא x". מחזירה true אם x הוא שקר . מחזירה false אם x נכון . _

boolean x = true;

לאחר מכן

// !x == false
& "ו" הגיוני (וכפל לוגי) בינארי (a & b) מחזירה true אם גם a וגם b הם אמת .

a = true;
b = false;

לאחר מכן


a & b == false
| לוגי OR (תוספת לוגית) בינארי (a | ב) מחזירה true אם a או b או שניהם אמת .

a = true;
b = false;

לאחר מכן

^ OR (XOR) בלעדי לוגי בינארי (a ^ b) מחזירה true , אם רק אחד מהאופרנדים (a או b) נכון . מחזירה false , אם a ו- b שניהם נכון או לא נכון בו זמנית. למעשה אם a אינו שווה ל- b הוא מחזיר אמת .

a = true;
b = false;

לאחר מכן


a ^ b == true
&& AND מותנה (קיצור לוגי AND) בינארי a && b זה זהה ל- a&b , אבל אם a הוא false , האופרטור פשוט מחזיר false מבלי לסמן את b .
|| OR מותנה (קיצור לוגי OR) בינארי א || b זהה ל- a | b , אבל אם a נכון , האופרטור פשוט מחזיר אמת מבלי לסמן את b .
שימו לב שב-Java, האופרטורים & , | ו- ^ חלים גם על מספרים שלמים. במקרה זה, הם עובדים קצת אחרת ונקראים אופרטורים לוגיים סיביים (או סיביים). ניקח דוגמה ונציג מספר ביטויים לוגיים המורכבים באמצעות אופרטורים לוגיים.

public class BoolTest2 {
   public static void main(String[] args) {
   int a = 5;
   int b = 7;
   boolean myBool1 = true;
   boolean myBool2 = false;
       System.out.println(myBool1&myBool2);
       System.out.println(myBool1|myBool2);
       System.out.println(!myBool1);
       System.out.println((a > b) & !myBool1 | myBool2);
   }
}
הנה הפלט:
שקר נכון שקר שקר
למעשה, אתה יכול ליצור קונסטרוקציות לוגיות מורכבות מאוד באמצעות אופרטורים לוגיים. לדוגמה
(a<!b)&(q+1 == 12)^(!a | c & b > 1 + b)|(q ^ a > !b)
אם כל המשתנים מאותחלים, קונסטרוקציות כאלה יעבדו. עם זאת, אל תשתמש בהם לרעה, הם מקשים על קריאת הקוד. עם זאת, זה מאוד שימושי להתמודד עם קונסטרוקציות לוגיות כאלה. נסה ליצור ביטויים לוגיים עם אופרטורים לוגיים אחרים המופיעים בטבלה.

עדיפות של פעולות לוגיות

כמו במתמטיקה, בתכנות, לאופרטורים יש סדר ביצוע ספציפי אם הם מתרחשים באותו ביטוי. לאופרטורים Unary יש יתרונות על פני בינאריים, וכפל (אפילו לוגי) על פני חיבור. להלן אופרטורים לוגיים הממוקמים ברשימת הנושאים גבוה יותר, ככל שהעדיפות שלהם גבוהה יותר:
  • !

  • &

  • ^

  • |

  • &&

  • ||

עטיפה בוליאנית של Java

בג'אווה, לכל טיפוס פרימיטיבי יש "אח", כיתת עטיפה ( Wrapper ). עטיפה היא מחלקה מיוחדת המאחסנת את הערך של פרימיטיבי בפנים. עם זאת, זו מחלקה, אז אתה יכול ליצור מופעים (אובייקטים) שלה. חפצים אלו מאחסנים בתוכם את הערכים הדרושים של פרימיטיבים, בעוד שהם יהיו חפצים אמיתיים. לסוג הפרימיטיבי הפרימיטיבי של Java בוליאני יש מחלקה עטיפה של Java Boolean (עם אות B). אובייקטי Class Boolean נוצרים בדיוק כמו כל אובייקט אחר:

Boolean b = new Boolean(false);
למחלקת Java Boolean יש שיטות שימושיות. אחת המעניינות שבהן היא שיטת parseBoolean . שיטת ניתוח בוליאני סטטיBoolean(String s) מנתחת את ארגומנט המחרוזת כארגומנט בוליאני. הערך הבולאלי המוחזר מייצג את הערך true אם ארגומנט המחרוזת אינו ריק והוא שווה, תוך התעלמות מרישיות, למחרוזת "true". אחרת הוא מחזיר false .

דוגמה לשיטת parseBoolean


public class BoolTest2 {

        public static void main(String[] args)
        {
            System.out.println(Boolean.parseBoolean("True"));
            System.out.println(Boolean.parseBoolean("TRuE"));
            System.out.println(Boolean.parseBoolean("False"));
            System.out.println(Boolean.parseBoolean("here"));

        }
    }
הפלט הוא:
נכון אמיתי שקר שקר
כדי לחזק את מה שלמדת, אנו מציעים לך לצפות בשיעור וידאו מקורס Java שלנו
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION