בשפה האנגלית יש לנו חלקים שונים של דיבור,
כמו שם עצם, שם תואר, מילות יחס, פעלים.
וכמו כן יש גם אוסף של חוקים שאומרים לנו מתי ואיך להשתמש בכל אחד מחלקי הדיבור האלו ביחד
אני יכולה להגיד משהו כמו ״שיעורים הכלב את אכל לי״, ואתם תגידו ״על מה לעזאזל את מדברת?!״
ואם לא הבנתם את זה כבר, מסתבר שאסור לשים שני שמות עצם
לפני שם תואר או לפני פועל. לא עובד.
אבל אם הייתי מחליפה את הסדר ואומרת ״הכלב אכל לי את השיעורים״ אז הייתם מבינים למה אני מתכוונת.
אפילו הייתי יכולה להחליף את המילה ״אכל״ עם פועל אחר כמו, נגיד, ״זרק״
ועדיין זה היה הגיוני מבחינת דקדוק, אפילו אם קשה לדמיין כלב זורק ספר.
אז בתכנות, במקום החלקים השונים של הדיבור, יש לנו דברים כאלו שנקראים ״טיפוסים״ או באנגלית ״types".
כבר ראיתם אותם בעבר: מספרים. אנחנו משתמשים במספרים כל הזמן בקוד הציור שלנו.
ובדיוק כמו באנגלית, יש זמנים שבהם זה הגיוני להשתמש במספר, ויש כאלו שלא.
אם אני אתחיל להקליד בפונקציית ה-background הזו, ״100 מינוס״ אז כדאי שהדבר הבא יהיה מספר
או לפחות משהו שהערך שלו הוא מספר כמו ״14 + 15״
מצד שני, אם אני פשוט אקליד ״100 רווח״, אני לא יכולה להקליד מספר אחרי זה
כי ״100 רווח 10״ לא באמת אומר משהו.
יש טיפוס נוסף בתכנות, נקרא לו טיפוס בוליאני.
והוא נקרא בוליאני מכיוון שבחור כלשהו בשם ג׳ורג׳ בול המציא אותו.
ובניגוד למספר, שיש לו מלא ערכים אפשריים,
לטיפוס בוליאני יכול להיות רק אחד מתוך שני ערכים: אמת (true) או שקר (false)
ושימו לב שכשאני מקלידה אותם, הם הופכים להיות כחולים, מה שאומרים שהם מילה סופר מיוחדת ושמורה.
בטוח שכבר ראיתם מקום אחד שמשתמש בבוליאנים, למרות שאולי לא הבנתם את זה:
הצהרות if!
בואו נזכר ממש מהר איך זה עובד.
אני הולכת להגדיר משתנה בשם ״number״, ולתת לו ערך, נגיד 40.
ולכתוב הצהרת if שאומרת "אם המספר נמוך מ-50 אז...
... אז אני אצייר את האליפסה הראשונה הזו״.
אני הולכת להעתיק את ההצהרת if הזו וליישר אותה על ידי בחירה של הכל ולחיצה על מקש ה-TAB.
אז עכשיו ההצהרה הזו אומרת, ״אם המספר נמוך מ-50 (והוא נמוך!) אז נצייר את האליפסה העליונה״.
ואם אני אהפוך את המספר ליותר מ-50 אז אתם יכולים לראות שהאפליסה נעלמת.
אוקיי, אז הדבר הזה בתוך הסוגריים הוא למעשה ביטוי בוליאני.
זכרו שביטוי מתמטי הוא כל דבר שניתן לחשב את ערכו כמספר, לדוגמא: 3 ועוד 2 ועוד 4 כפול 8.
אז ביטוי בוליאני הוא כל דבר שניתן להעריכו כבוליאני (אמת או שקר)
דרך טובה לבדוק אם ביטוי הוא בוליאני היא באמצעות המילה ״האם״
בתחילת הביטוי, ולהציג את הביטוי כמו שאלה.
אם זה נשמע כמו שאלת כן/לא פשוטה אז תדעו שזה ביטוי בוליאני.
כאן למשל אנחנו יכולים להגיד, ״האם number קטן מ-50?״ כן! אז כן, זה ביטוי בוליאני.
מצד שני, אם היה לנו משהו כמו ״4 + 4״, והיינו מנסים לשאול,
״האם 4 + 4?״ לא. זה לא ביטוי בוליאני.
אז בחזרה להצהרת ה-if שלנו. אני למעשה יכולה לשים הכל
בתוך הסוגריים, כל עוד זה משתנה בוליאני או ביטוי בוליאני.
אז אני יכולה לכתוב ״if true״, ואז האליפסה תמיד תצוייר.
או שאני יכול להגיד ״if false״ ואז האליפסה לעולם לא תצוייר.
אני גם יכולה לעשות משהו כמו ״אם 3 קטן מ-4״, שזה ביטוי בוליאני
שתמיד יהיה נכון, שזה קצת חסר טעם,
האליפסה תמיד תצוייר. או למשל ״3 גדול מ-4״ מה שתמיד יהיה שקר.
ואני יכולה לתת ערך בוליאני למשתנה, ככה
אז אני הולכת להגדיר משתנה חדש, נראה לו winstonIsCool, ונציב לו ערך
בוליאני, אז או אמת או שקר. נניח אמת מכיוון שוינסון באמת מגניב.
ועכשיו שלמשתנה הזה יש ערך בוליאני, אני יכולה להעתיק לאותו
ולשים אותו בתוך הצהרת ה-if
ועכשיו אתם יכולים לראות שהאליפסה אכן מצויירת, מכיוון שהערך של המשתנה winstonIsCool
הוא אמת.
אני יכול להחליף את זה עם ביטוי בוליאני,
למשל ״2 קטן מ-4״.
עכשיו אם אתם מגדירים משתנה שמיועד להיות בוליאני,
כדאי שתתנו לו שם שמתאר את התנאי שלו כשהמשתנה נכון (true).
דרך טובה לבדוק אם בחרת שם טוב עבור המשתנה שלכם
היא לשים אותו בהצהרת if ולראות אם הוא הגיוני בתור תנאי.
תשכחו רגע את winstonIsCool, אנחנו כבר יודעים שזה נכון.
נניח שהיה לנו משתנה בשם "muffins״.
אוקיי, אם muffins, המממ,
אתם יודעים מה, השם הזה לא אומר לי כלום, אז כנראה שזה שם רע למשתנה.
אבל אם היה לי תנאי עם משתנה כמו למשל "if muffinsAreBaking״, אז זה היה כבר אומר לי משהו
כשהמשתנה הזה היה נכון, הייתי יודעת שהמאפינס כרגע באפייה (the muffins are baking).
ואל תשאלו אותי אילו מאפינס, זה לא חשוב.
בואו נחזור רגע ל״אם המספר נמוך מ-50״.
מגניב.
בואו נסתכל על כמה ביטויים בוליאנים נוספים.
כבר ראיתם את ״גדול מ״ ו״קטן מ״.
אבל אפשר גם לבדוק אם משהו ״קטן או שווה למשהו״ באמצעות הסימן =>
אז בואו ננסה, אם המספר קטן או שווה ל-48,
ואנחנו גם יכולים להגיד, אם המספר גדול או שווה ל-48, באמצעות הסימן =<.
אם זה כך, נצייר את האליפסה העליונה הימנית.
ניישר את זה.
ואם תרצו לבדוק אם שני דברים שווים בדיוק אחד לשני, תוכלו להגיד:
אם המספר === 48, או בקוד: if number === 48.
שזה לפחות שני סימני שווה יותר ממה שהשתמשתם בהם במתמטיקה,
עכשיו יש לכם שלושה בשורה.
זה קצת מוגזם לא?
אפשר גם לבדוק אם משהו לא שווה למשהו,
אם זה בהחלט לא שווה, אז אפשר לכתוב ״אם המספר ==! 48״ או בקוד: if number !== 48.
ואז נצייר את האליפסה האחרונה.
אוקיי, אז אם נחזור רגע להתחלה, יש לנו מספר שהוא 48,
שהוא גם ״שווה או קטן״ ל-48, ולכן האליפסה השמאלית העליונה מצויירת.
הוא גם ״גדול או שווה״ ל-48, הוא גם שווה ל-48
אבל הוא לא ״לא שווה״ ל-48, ולכן חסרה לנו האליפסה הימנית התחתונה.
ואם נשחק עם המספר קצת, נוכל את השינויים באליפסות שמצויירות.
ועכשיו אתם מכירים בוליאנים!
ובדיוק כמו ביטויים מתמטיים, ביטויים בוליאנים יכולים להיות מאוד מסובכים.
אבל נדבר על זה כבר בפעם אחרת. בהצלחה!