-
הנה איפה שהפסקנו עם משחק הטלת המטבע שלנו.
-
התחלנו בכך שיצרנו מספר אקראי (רנדומלי) בין 0 ל-1,
-
ואז עיגלנו את המספר הזה למספר השלם הקרוב ביותר
-
כך שקיבלנו מספר שהוא או 0 או 1
-
ואז ציירנו את המטבע הסופר אמיתי שלנו עם אליפסה שהייתה או סגולה או צהובה, תלוי באיזה מספר יצא.
-
והנה הקוד שאיתו עשינו את זה.
-
אז אמרנו שאם המספר השלם (ה-integer), שווה ל-0, אז נמלא את האליפסה בצבע סגול, אחרת, נמלא אותה בצהוב.
-
ואז ציירנו את המטבע כאן למטה.
-
אבל עכשיו החלטתי שלמעשה למטבע שלי יש 3 צדדים. כן, מטבע עם שלושה צדדים.
-
אז בואו נוסיף צד שלישי.
-
אני הולכת להתחיל ביצירת מספר בין 0 ל-2,
-
ואחרי שנעגל אותו, נקבל מספר שלם שהוא או 0,1 או 2
-
אבל אם נסתכל על הקוד שלנו שמצייר, אנחנו מוכנים רק לשני מקרים.
-
אם integer הוא 0, המטבע סגול, אחרת, הוא צהוב.
-
אבל עכשיו, ה״אחרת״ יכול להיות גם 1 או 2.
-
אבל רגע, מה אם אני אעשה את מה שעשינו כבר קודם
-
בתוך הבלוק הזה של ה-else. אני פשוט אגיד:
-
אם integer שווה ל-1 אז צבע המילוי צריך להיות צהוב, כמו מקודם,
-
אחרת (else), צבע המילוי יהיה אדום. אדום זה טוב.
-
אז מה שזה אומר, שאם integer שווה ל-0, הצבע יהיה סגול,
-
אחרת, אם זה 1, הצבע יהיה צהוב,
-
אחרת, זאת אומרת, אם זה לא 0 וזה לא 1, זה חייב להיות 2, תעשה אותו אדום.
-
אני אלחץ אתחול כמה פעמים. זה עובד! ווהוו!
-
אז אם הייתי רוצה להוסיף עוד צדדים למטבע שלי,
-
יכולתי ללכת לכאן למעלה, לעשות את זה 0 עד 3, ואז להיכנס עמוק יותר לבלוק ה-else ולהוסיף עוד if-else-ים עוד ועוד
-
עד שיהיו לי זיליון בלוקים מיושרים אחד אחרי השני.
-
ורק אז אני אבין שהקוד הזה מזעזע! די דוחה!
-
קוד אמור להיות קל לקריאה ויפה, לא מכוער ומסובך.
-
אז הנה מה שאנחנו הולכים לעשות:
-
בכל פעם שיש לכם רק הצהרת if אחת או הצהרת if-else בתוך בלוק של else,
-
זה אומר שאנחנו לא עושים משהו אחר מעבר לבלוק הזה,
-
אנחנו לא משנים את צבע קו המתאר, אין לנו עוד הצהרות if, כלום.
-
כל מה שיש לנו הוא הצהרת ה-if היחידה הזו, ואולי היא באה עם בלוק של else
-
אז אנחנו יכולים לשלב את התנאי הזה עם השורה לפני ולהגיד:
-
else if integer = 1 אז תשנה את הצבע לצהוב.
-
ואז בלוק ה-else האחרון הזה לא צריך להיות מיושר פנימה יותר, הוא פשוט מגיע בסוף בעצמו.
-
נהדר! אז עכשיו מה שזה אומר זה שאם integer שווה ל-0, הצבע יהיה סגול,
-
אחרת אם integer שווה ל-1, הצבע יהיה צהוב,
-
אחרת, אם שני אלו הם שקר, הצבע יהיה אדום.
-
אני לוחצת על אתחול כמה פעמים ואתם רואים שזה עדיין עובד.
-
נהדר! והדבר המגניב ביותר בזה הוא שיכולים להיות להיות כמה משפטי else-if שאנחנו רוצים,
-
מה שעושה את זה ממש קל להוסיף עוד צדדים למטבע שלי.
-
אז בואו נעשה את זה עכשיו, אני הולכת לייצר מספר בין 0 ל-3,
-
ואז להוסיף עוד בלוק else שאומר שאם integer שווה ל-2
-
נעשה את צבע המילוי אדום,
-
ואז בלוק ה-else האחרון הזה יהיה למקרה ש-integer שווה ל-3,
-
ונעשה את זה כחול. נהדר!
-
אוקיי, אז בשביל לעשות את זה, אתם תמיד צריכים להתחיל עם הצהרת if,
-
ואז אתם יכולים לשים כמה הצהרות else-if שתרצו,
-
ואז הבלוק האחרון הזה פה הוא אופציונאלי.
-
למעשה אנחנו יכולים להסתדר בלעדיו, וזה אפשרי שכל אלו יהיו שקר,
-
כך שאף אחד מהבלוקים הללו לא ייתבצע.
-
אבל כל עוד יש לנו אותו שם, אז בטוח שאחד מהבלוקים האלו ירוץ.
-
מגניב? עכשיו זה מקרה שבו לא ממש משנה אם תכתוב f else-if else-if else
-
או שפשוט תכתבו הצהרות if כמו שעשינו בהתחלה, כמו למשל אם integer שווה ל-3.
-
וזה בגלל שזה לעולם לא אפשרי למספר שלם להיות שווה גם ל-0 וגם ל-1,2,3.
-
נהדר. אז התנאים האלו סותרים.
-
זאת אומרת שרק אחד מהבלוקים האלו ירוץ אי פעם.
-
אבל זה לא תמיד המקרה.
-
מה אם היינו עושים משחק מבלי לעגל את המספר העשרוני למספר שלם?
-
אז אני אפטר מהחלק שבו אנו מעגלים את המספר,
-
והחלק בו אנחנו מציירים את זה למסך
-
ובואו נמציא כמה חוקים חדשים למשחק שלי.
-
אז אני עדיין מייצרת מספר בין 0 ל-3,
-
בואו נשים כמה סמנים על הקו שלנו,
-
אז בואו נגיד שאם המספר בין 0 ל-1, הצבע יהיה סגול.
-
אוקיי, זה סגול.
-
ואז אם זה בין 1 ל-2, אנחנו נעשה את זה צהוב.
-
ואם זה בין 2 ל-3, נעשה את זה אדום.
-
נהדר. אז בואו נראה מה אנחנו יכולים לעשות עם if ו-else-if.
-
אז אני אתחיל בלהגיד שאם המספר קטן מ-1,
-
אז אם זה פחות מ-1, ואני יודעת שזה בין 0 ל-3, אז זה חייב להיות בטווח הזה.
-
אז אני אגדיר את צבע המילוי לסגול.
-
אחרת, אם המספר הוא קטן מ-2, אני אגדיר את צבע המילוי לצהוב...
-
ואחרת, אני אגדיר את צבע המילוי לאדום
-
נהדר! וזה עובד בדיוק כמו שתיכננתי.
-
אז אם המספר קטן מ-1, שוב, זה בטווח הזה.
-
אחרת, זה גדול או שווה ל-1, אבל זה גם קטן מ-2
-
אז זה אומר שזה בטווח הזה, אז הצבע יהיה צהוב.
-
אחרת, זה חייב להיות גדול או שווה מ-2 ולהיות בטווח הזה,
-
והנה מקרה שלא יכולנו להגיד אם המספר קטן מ-2
-
ואם המספר קטן מ-3,
-
מכיוון שאם המספר קטן מ-1, הוא בהחלט קטן מ-2
-
והוא גם בהחלט קטן מ-3
-
אז צבע המטבע שלנו יהיה אדום.
-
ולכן במקרה הזה, מאוד מועיל להשתמש ב-else-if.