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 | הפרק הבא: מערכים |