0:00:01.869,0:00:03.822 הנה איפה שהפסקנו עם משחק הטלת המטבע שלנו. 0:00:03.822,0:00:06.597 התחלנו בכך שיצרנו מספר אקראי (רנדומלי) בין 0 ל-1, 0:00:06.597,0:00:08.877 ואז עיגלנו את המספר הזה למספר השלם הקרוב ביותר 0:00:08.877,0:00:12.214 כך שקיבלנו מספר שהוא או 0 או 1 0:00:12.214,0:00:18.909 ואז ציירנו את המטבע הסופר אמיתי שלנו עם אליפסה שהייתה או סגולה או צהובה, תלוי באיזה מספר יצא. 0:00:18.909,0:00:20.987 והנה הקוד שאיתו עשינו את זה. 0:00:20.987,0:00:25.819 אז אמרנו שאם המספר השלם (ה-integer), שווה ל-0, אז נמלא את האליפסה בצבע סגול, אחרת, נמלא אותה בצהוב. 0:00:25.819,0:00:27.917 ואז ציירנו את המטבע כאן למטה. 0:00:27.917,0:00:32.455 אבל עכשיו החלטתי שלמעשה למטבע שלי יש 3 צדדים. כן, מטבע עם שלושה צדדים. 0:00:32.455,0:00:34.190 אז בואו נוסיף צד שלישי. 0:00:34.190,0:00:37.109 אני הולכת להתחיל ביצירת מספר בין 0 ל-2, 0:00:37.109,0:00:41.533 ואחרי שנעגל אותו, נקבל מספר שלם שהוא או 0,1 או 2 0:00:41.533,0:00:45.609 אבל אם נסתכל על הקוד שלנו שמצייר, אנחנו מוכנים רק לשני מקרים. 0:00:45.609,0:00:48.815 אם integer הוא 0, המטבע סגול, אחרת, הוא צהוב. 0:00:48.815,0:00:51.885 אבל עכשיו, ה״אחרת״ יכול להיות גם 1 או 2. 0:00:51.885,0:00:54.931 אבל רגע, מה אם אני אעשה את מה שעשינו כבר קודם 0:00:54.931,0:00:57.403 בתוך הבלוק הזה של ה-else. אני פשוט אגיד: 0:00:57.403,0:01:04.933 אם integer שווה ל-1 אז צבע המילוי צריך להיות צהוב, כמו מקודם, 0:01:04.933,0:01:11.403 אחרת (else), צבע המילוי יהיה אדום. אדום זה טוב. 0:01:11.403,0:01:15.478 אז מה שזה אומר, שאם integer שווה ל-0, הצבע יהיה סגול, 0:01:15.478,0:01:18.984 אחרת, אם זה 1, הצבע יהיה צהוב, 0:01:18.984,0:01:24.611 אחרת, זאת אומרת, אם זה לא 0 וזה לא 1, זה חייב להיות 2, תעשה אותו אדום. 0:01:24.611,0:01:28.566 אני אלחץ אתחול כמה פעמים. זה עובד! ווהוו! 0:01:28.566,0:01:31.536 אז אם הייתי רוצה להוסיף עוד צדדים למטבע שלי, 0:01:31.536,0:01:37.987 יכולתי ללכת לכאן למעלה, לעשות את זה 0 עד 3, ואז להיכנס עמוק יותר לבלוק ה-else ולהוסיף עוד if-else-ים עוד ועוד 0:01:37.987,0:01:40.158 עד שיהיו לי זיליון בלוקים מיושרים אחד אחרי השני. 0:01:40.158,0:01:44.704 ורק אז אני אבין שהקוד הזה מזעזע! די דוחה! 0:01:44.704,0:01:48.351 קוד אמור להיות קל לקריאה ויפה, לא מכוער ומסובך. 0:01:48.351,0:01:50.070 אז הנה מה שאנחנו הולכים לעשות: 0:01:50.070,0:01:55.675 בכל פעם שיש לכם רק הצהרת if אחת או הצהרת if-else בתוך בלוק של else, 0:01:55.675,0:01:58.313 זה אומר שאנחנו לא עושים משהו אחר מעבר לבלוק הזה, 0:01:58.313,0:02:04.486 אנחנו לא משנים את צבע קו המתאר, אין לנו עוד הצהרות if, כלום. 0:02:04.486,0:02:08.444 כל מה שיש לנו הוא הצהרת ה-if היחידה הזו, ואולי היא באה עם בלוק של else 0:02:08.444,0:02:13.156 אז אנחנו יכולים לשלב את התנאי הזה עם השורה לפני ולהגיד: 0:02:13.156,0:02:17.073 else if integer = 1 אז תשנה את הצבע לצהוב. 0:02:17.073,0:02:21.939 ואז בלוק ה-else האחרון הזה לא צריך להיות מיושר פנימה יותר, הוא פשוט מגיע בסוף בעצמו. 0:02:21.939,0:02:27.067 נהדר! אז עכשיו מה שזה אומר זה שאם integer שווה ל-0, הצבע יהיה סגול, 0:02:27.067,0:02:30.235 אחרת אם integer שווה ל-1, הצבע יהיה צהוב, 0:02:30.235,0:02:34.484 אחרת, אם שני אלו הם שקר, הצבע יהיה אדום. 0:02:34.484,0:02:37.738 אני לוחצת על אתחול כמה פעמים ואתם רואים שזה עדיין עובד. 0:02:37.738,0:02:41.824 נהדר! והדבר המגניב ביותר בזה הוא שיכולים להיות להיות כמה משפטי else-if שאנחנו רוצים, 0:02:41.824,0:02:44.703 מה שעושה את זה ממש קל להוסיף עוד צדדים למטבע שלי. 0:02:44.703,0:02:48.009 אז בואו נעשה את זה עכשיו, אני הולכת לייצר מספר בין 0 ל-3, 0:02:48.009,0:02:56.058 ואז להוסיף עוד בלוק else שאומר שאם integer שווה ל-2 0:02:56.135,0:02:59.658 נעשה את צבע המילוי אדום, 0:02:59.658,0:03:02.658 ואז בלוק ה-else האחרון הזה יהיה למקרה ש-integer שווה ל-3, 0:03:02.658,0:03:08.969 ונעשה את זה כחול. נהדר! 0:03:08.969,0:03:12.816 אוקיי, אז בשביל לעשות את זה, אתם תמיד צריכים להתחיל עם הצהרת if, 0:03:12.816,0:03:16.910 ואז אתם יכולים לשים כמה הצהרות else-if שתרצו, 0:03:16.910,0:03:18.698 ואז הבלוק האחרון הזה פה הוא אופציונאלי. 0:03:18.698,0:03:21.900 למעשה אנחנו יכולים להסתדר בלעדיו, וזה אפשרי שכל אלו יהיו שקר, 0:03:21.900,0:03:23.722 כך שאף אחד מהבלוקים הללו לא ייתבצע. 0:03:23.722,0:03:30.484 אבל כל עוד יש לנו אותו שם, אז בטוח שאחד מהבלוקים האלו ירוץ. 0:03:30.484,0:03:37.017 מגניב? עכשיו זה מקרה שבו לא ממש משנה אם תכתוב f else-if else-if else 0:03:37.017,0:03:45.509 או שפשוט תכתבו הצהרות if כמו שעשינו בהתחלה, כמו למשל אם integer שווה ל-3. 0:03:45.509,0:03:50.728 וזה בגלל שזה לעולם לא אפשרי למספר שלם להיות שווה גם ל-0 וגם ל-1,2,3. 0:03:50.728,0:03:54.223 נהדר. אז התנאים האלו סותרים. 0:03:54.223,0:03:56.609 זאת אומרת שרק אחד מהבלוקים האלו ירוץ אי פעם. 0:03:56.609,0:03:58.278 אבל זה לא תמיד המקרה. 0:03:58.278,0:04:01.636 מה אם היינו עושים משחק מבלי לעגל את המספר העשרוני למספר שלם? 0:04:01.636,0:04:04.485 אז אני אפטר מהחלק שבו אנו מעגלים את המספר, 0:04:04.485,0:04:06.640 והחלק בו אנחנו מציירים את זה למסך 0:04:06.640,0:04:09.284 ובואו נמציא כמה חוקים חדשים למשחק שלי. 0:04:09.284,0:04:12.637 אז אני עדיין מייצרת מספר בין 0 ל-3, 0:04:12.637,0:04:15.315 בואו נשים כמה סמנים על הקו שלנו, 0:04:15.315,0:04:23.378 אז בואו נגיד שאם המספר בין 0 ל-1, הצבע יהיה סגול. 0:04:23.378,0:04:26.153 אוקיי, זה סגול. 0:04:26.153,0:04:30.504 ואז אם זה בין 1 ל-2, אנחנו נעשה את זה צהוב. 0:04:30.504,0:04:35.533 ואם זה בין 2 ל-3, נעשה את זה אדום. 0:04:35.533,0:04:38.651 נהדר. אז בואו נראה מה אנחנו יכולים לעשות עם if ו-else-if. 0:04:38.651,0:04:43.542 אז אני אתחיל בלהגיד שאם המספר קטן מ-1, 0:04:43.542,0:04:51.436 אז אם זה פחות מ-1, ואני יודעת שזה בין 0 ל-3, אז זה חייב להיות בטווח הזה. 0:04:51.436,0:04:54.156 אז אני אגדיר את צבע המילוי לסגול. 0:04:54.156,0:05:06.702 אחרת, אם המספר הוא קטן מ-2, אני אגדיר את צבע המילוי לצהוב... 0:05:06.702,0:05:13.263 ואחרת, אני אגדיר את צבע המילוי לאדום 0:05:13.263,0:05:15.596 נהדר! וזה עובד בדיוק כמו שתיכננתי. 0:05:15.596,0:05:19.307 אז אם המספר קטן מ-1, שוב, זה בטווח הזה. 0:05:19.307,0:05:23.603 אחרת, זה גדול או שווה ל-1, אבל זה גם קטן מ-2 0:05:23.603,0:05:26.732 אז זה אומר שזה בטווח הזה, אז הצבע יהיה צהוב. 0:05:26.732,0:05:31.900 אחרת, זה חייב להיות גדול או שווה מ-2 ולהיות בטווח הזה, 0:05:31.900,0:05:36.277 והנה מקרה שלא יכולנו להגיד אם המספר קטן מ-2 0:05:36.277,0:05:39.650 ואם המספר קטן מ-3, 0:05:39.650,0:05:42.932 מכיוון שאם המספר קטן מ-1, הוא בהחלט קטן מ-2 0:05:42.932,0:05:44.896 והוא גם בהחלט קטן מ-3 0:05:44.896,0:05:46.781 אז צבע המטבע שלנו יהיה אדום. 0:05:46.781,0:05:50.781 ולכן במקרה הזה, מאוד מועיל להשתמש ב-else-if.