Java/הרחבה על משתנה בוליאני, ערך null
משתנה בוליאני הוא משתנה מיוחד, המסוגל לקבל ערך של "אמת" (True) או "שקר" (False) בלבד.
הסבר לשימוש
עריכהכאשר משתמשים בערך בוליאני, אפשר להציב בו רק ערך של אמת או שקר, שבג'אווה מיוצגים על ידי המילים השמורות true ו-false (שימו לב - אותיות קטנות).
דוגמה:
boolean t = true;
boolean f = false;
למרות מוגבלותם, משתנים בוליאניים מועילים מאוד במקרים רבים.
צורה של שימוש בלולאות ותנאים
עריכהכאשר יוצרים תנאי, יכולים להיות לו שני מצבים: אמת או שקר. לצורך זה המערכת של השפה נעזרת במשתנה בוליאני פנימי, אשר לנו אין גישה אליו. אנו יכולים להעזר במשתנה בוליאני משלנו ולא לבזבז משאבי מערכת נוספים. לדוגמה:
public class bool
{
public static void main(String[] arg)
{
boolean t = true;
// t is now true
if(t == true)
{
System.out.print("Hello ");
}
// Now we set t to false
t = false;
if(t == false)
{
System.out.println("world");
}
}
}
הפלט של התוכנית יהיה
יכולנו לכתוב גם כך את הקוד ולקבל תוצאה זהה:
public class bool
{
public static void main(String[] arg)
{
boolean t = true;
// t is now true
if(t)
{
System.out.print("Hello ");
}
// Now we set t to false
t = false;
if(!t)
{
System.out.println("world");
}
}
}
גם כאן הפלט יהיה
מפני שהצורה בה כתבנו את התנאי השני - בדיקה ישירה האם המשתנה t הוא שקר - שקולה לחלוטין לצורה הקודמת, בה השוונו את t לערך "שקר".
הסבר לדוגמה
עריכהבדוגמה נעשה שימוש במשתנה בוליאני אחד, t, שאותחל להיות אמת. בתנאי הראשון בדק המחשב האם ערך המשתנה t הוא "אמת". מכיוון ש-t אמת, הוצג הפלט "Hello". לאחר מכן, שינינו את ערך המשתנה t לשקר, ואז הגיעה התוכנית לתנאי נוסף, שבדק אם המשתנה t הוא שקר. מכיוון שבשלב זה הערך שהחזיק t הוא ערך שקר, התקיים התנאי והודפס הפלט "world".
פעולות על משתנים בוליאניים
עריכהמטבע הדברים, לא ניתן לבצע פעולות חשבוניות על משתנים בוליאניים - זה לא מוגדר. מצד שני, ניתן לבצע עליהם כמה פעולות אחרות: או, וגם, או שלילה. בהנחה ש-b1, b2 ו-b3 הם משתנים בוליאניים:
b3 = b1 && b2
- פעולת "וגם" - b3 שווה אמת רק אם גם b1 וגם b2 הם אמת.b3 = b1 || b2
- פעולת "או" - b3 שווה אמת אם לפחות אחד מהמשתנים b1 ו-b2 הם אמת.b3 = !b1
- פעולת שלילה - b3 יקבל את הערך ההפוך מזה שמחזיק b1.b2 |= b1
- דרך מקוצרת לכתובb2 = b2 || b1
.b2 &= b1
- דרך מקוצרת לכתובb2 = b2 && b1
.
בדיוק כמו עם תנאים (או, ליתר דיוק - בתנאים, בדיוק כמו במשתנים בוליאניים) - ניתן להשתמש בכל צירוף הגיוני של הסימנים האלו, למשל: (b4 && b3) || (b2 && b1)
.
ערך null
עריכהערך מיוחד שקיים עבור אובייקטים הוא ערך ה-null
, שמשמעותו - שום דבר. שימו לב - null
באותיות קטנות. משתנים פרימיטיביים, כלומר - כל המשתנים המוכרים לנו עד כה פרט למחרוזות, אינם יכולים לקבל ערך null. מערכים נחשבים גם הם כאובייקטים, ולכן גם הם יכולים לקבל ערך null.
תחביר וצורת כתיבה
עריכהניתן לתת לאובייקט ערך null בצורה הבאה:
String s = null;
אפשר גם לבדוק אם אובייקט מסויים הוא null:
if (s == null) // Do something
כל האובייקטים, אם רק הוכרזו אך לא אותחלו - מכילים ערך null.
גישה
עריכהכל ניסיון לבצע פעולה על אובייקט שהוא null יגרור קריסה של התוכנית, מכיוון ש-null הוא למעשה ערך שלא אותחל. עם זאת, ניתן לבדוק אם אובייקט מסויים הוא null, באמצעות תנאי זהה לזה שראינו קודם.
דוגמא להמחשה
עריכהנתחיל בניסוי:
String s = "Hi";
if(s == null)
{
System.out.println("The string is null");
}
else
{
System.out.println("The string isn't null");
}
הפלט של שורות קוד אלה יהיה
לעומת זאת, אם נאתחל את המשתנה s ל-null, כלומר - נחליף את השורה הראשונה ב-String s = null;
נקבל את הפלט
נעיר כאן כי אם לא נאתחל כלל את s, נקבל שגיאת הידור - המהדר לא יאפשר גישה למשתנה שלא אותחל.
הפרק הקודם: תנאים ולולאות |
הרחבה על משתנה בוליאני, ערך null | הפרק הבא: מערכים |