1 00:00:01,869 --> 00:00:03,822 הנה איפה שהפסקנו עם משחק הטלת המטבע שלנו. 2 00:00:03,822 --> 00:00:06,597 התחלנו בכך שיצרנו מספר אקראי (רנדומלי) בין 0 ל-1, 3 00:00:06,597 --> 00:00:08,877 ואז עיגלנו את המספר הזה למספר השלם הקרוב ביותר 4 00:00:08,877 --> 00:00:12,214 כך שקיבלנו מספר שהוא או 0 או 1 5 00:00:12,214 --> 00:00:18,909 ואז ציירנו את המטבע הסופר אמיתי שלנו עם אליפסה שהייתה או סגולה או צהובה, תלוי באיזה מספר יצא. 6 00:00:18,909 --> 00:00:20,987 והנה הקוד שאיתו עשינו את זה. 7 00:00:20,987 --> 00:00:25,819 אז אמרנו שאם המספר השלם (ה-integer), שווה ל-0, אז נמלא את האליפסה בצבע סגול, אחרת, נמלא אותה בצהוב. 8 00:00:25,819 --> 00:00:27,917 ואז ציירנו את המטבע כאן למטה. 9 00:00:27,917 --> 00:00:32,455 אבל עכשיו החלטתי שלמעשה למטבע שלי יש 3 צדדים. כן, מטבע עם שלושה צדדים. 10 00:00:32,455 --> 00:00:34,190 אז בואו נוסיף צד שלישי. 11 00:00:34,190 --> 00:00:37,109 אני הולכת להתחיל ביצירת מספר בין 0 ל-2, 12 00:00:37,109 --> 00:00:41,533 ואחרי שנעגל אותו, נקבל מספר שלם שהוא או 0,1 או 2 13 00:00:41,533 --> 00:00:45,609 אבל אם נסתכל על הקוד שלנו שמצייר, אנחנו מוכנים רק לשני מקרים. 14 00:00:45,609 --> 00:00:48,815 אם integer הוא 0, המטבע סגול, אחרת, הוא צהוב. 15 00:00:48,815 --> 00:00:51,885 אבל עכשיו, ה״אחרת״ יכול להיות גם 1 או 2. 16 00:00:51,885 --> 00:00:54,931 אבל רגע, מה אם אני אעשה את מה שעשינו כבר קודם 17 00:00:54,931 --> 00:00:57,403 בתוך הבלוק הזה של ה-else. אני פשוט אגיד: 18 00:00:57,403 --> 00:01:04,933 אם integer שווה ל-1 אז צבע המילוי צריך להיות צהוב, כמו מקודם, 19 00:01:04,933 --> 00:01:11,403 אחרת (else), צבע המילוי יהיה אדום. אדום זה טוב. 20 00:01:11,403 --> 00:01:15,478 אז מה שזה אומר, שאם integer שווה ל-0, הצבע יהיה סגול, 21 00:01:15,478 --> 00:01:18,984 אחרת, אם זה 1, הצבע יהיה צהוב, 22 00:01:18,984 --> 00:01:24,611 אחרת, זאת אומרת, אם זה לא 0 וזה לא 1, זה חייב להיות 2, תעשה אותו אדום. 23 00:01:24,611 --> 00:01:28,566 אני אלחץ אתחול כמה פעמים. זה עובד! ווהוו! 24 00:01:28,566 --> 00:01:31,536 אז אם הייתי רוצה להוסיף עוד צדדים למטבע שלי, 25 00:01:31,536 --> 00:01:37,987 יכולתי ללכת לכאן למעלה, לעשות את זה 0 עד 3, ואז להיכנס עמוק יותר לבלוק ה-else ולהוסיף עוד if-else-ים עוד ועוד 26 00:01:37,987 --> 00:01:40,158 עד שיהיו לי זיליון בלוקים מיושרים אחד אחרי השני. 27 00:01:40,158 --> 00:01:44,704 ורק אז אני אבין שהקוד הזה מזעזע! די דוחה! 28 00:01:44,704 --> 00:01:48,351 קוד אמור להיות קל לקריאה ויפה, לא מכוער ומסובך. 29 00:01:48,351 --> 00:01:50,070 אז הנה מה שאנחנו הולכים לעשות: 30 00:01:50,070 --> 00:01:55,675 בכל פעם שיש לכם רק הצהרת if אחת או הצהרת if-else בתוך בלוק של else, 31 00:01:55,675 --> 00:01:58,313 זה אומר שאנחנו לא עושים משהו אחר מעבר לבלוק הזה, 32 00:01:58,313 --> 00:02:04,486 אנחנו לא משנים את צבע קו המתאר, אין לנו עוד הצהרות if, כלום. 33 00:02:04,486 --> 00:02:08,444 כל מה שיש לנו הוא הצהרת ה-if היחידה הזו, ואולי היא באה עם בלוק של else 34 00:02:08,444 --> 00:02:13,156 אז אנחנו יכולים לשלב את התנאי הזה עם השורה לפני ולהגיד: 35 00:02:13,156 --> 00:02:17,073 else if integer = 1 אז תשנה את הצבע לצהוב. 36 00:02:17,073 --> 00:02:21,939 ואז בלוק ה-else האחרון הזה לא צריך להיות מיושר פנימה יותר, הוא פשוט מגיע בסוף בעצמו. 37 00:02:21,939 --> 00:02:27,067 נהדר! אז עכשיו מה שזה אומר זה שאם integer שווה ל-0, הצבע יהיה סגול, 38 00:02:27,067 --> 00:02:30,235 אחרת אם integer שווה ל-1, הצבע יהיה צהוב, 39 00:02:30,235 --> 00:02:34,484 אחרת, אם שני אלו הם שקר, הצבע יהיה אדום. 40 00:02:34,484 --> 00:02:37,738 אני לוחצת על אתחול כמה פעמים ואתם רואים שזה עדיין עובד. 41 00:02:37,738 --> 00:02:41,824 נהדר! והדבר המגניב ביותר בזה הוא שיכולים להיות להיות כמה משפטי else-if שאנחנו רוצים, 42 00:02:41,824 --> 00:02:44,703 מה שעושה את זה ממש קל להוסיף עוד צדדים למטבע שלי. 43 00:02:44,703 --> 00:02:48,009 אז בואו נעשה את זה עכשיו, אני הולכת לייצר מספר בין 0 ל-3, 44 00:02:48,009 --> 00:02:56,058 ואז להוסיף עוד בלוק else שאומר שאם integer שווה ל-2 45 00:02:56,135 --> 00:02:59,658 נעשה את צבע המילוי אדום, 46 00:02:59,658 --> 00:03:02,658 ואז בלוק ה-else האחרון הזה יהיה למקרה ש-integer שווה ל-3, 47 00:03:02,658 --> 00:03:08,969 ונעשה את זה כחול. נהדר! 48 00:03:08,969 --> 00:03:12,816 אוקיי, אז בשביל לעשות את זה, אתם תמיד צריכים להתחיל עם הצהרת if, 49 00:03:12,816 --> 00:03:16,910 ואז אתם יכולים לשים כמה הצהרות else-if שתרצו, 50 00:03:16,910 --> 00:03:18,698 ואז הבלוק האחרון הזה פה הוא אופציונאלי. 51 00:03:18,698 --> 00:03:21,900 למעשה אנחנו יכולים להסתדר בלעדיו, וזה אפשרי שכל אלו יהיו שקר, 52 00:03:21,900 --> 00:03:23,722 כך שאף אחד מהבלוקים הללו לא ייתבצע. 53 00:03:23,722 --> 00:03:30,484 אבל כל עוד יש לנו אותו שם, אז בטוח שאחד מהבלוקים האלו ירוץ. 54 00:03:30,484 --> 00:03:37,017 מגניב? עכשיו זה מקרה שבו לא ממש משנה אם תכתוב f else-if else-if else 55 00:03:37,017 --> 00:03:45,509 או שפשוט תכתבו הצהרות if כמו שעשינו בהתחלה, כמו למשל אם integer שווה ל-3. 56 00:03:45,509 --> 00:03:50,728 וזה בגלל שזה לעולם לא אפשרי למספר שלם להיות שווה גם ל-0 וגם ל-1,2,3. 57 00:03:50,728 --> 00:03:54,223 נהדר. אז התנאים האלו סותרים. 58 00:03:54,223 --> 00:03:56,609 זאת אומרת שרק אחד מהבלוקים האלו ירוץ אי פעם. 59 00:03:56,609 --> 00:03:58,278 אבל זה לא תמיד המקרה. 60 00:03:58,278 --> 00:04:01,636 מה אם היינו עושים משחק מבלי לעגל את המספר העשרוני למספר שלם? 61 00:04:01,636 --> 00:04:04,485 אז אני אפטר מהחלק שבו אנו מעגלים את המספר, 62 00:04:04,485 --> 00:04:06,640 והחלק בו אנחנו מציירים את זה למסך 63 00:04:06,640 --> 00:04:09,284 ובואו נמציא כמה חוקים חדשים למשחק שלי. 64 00:04:09,284 --> 00:04:12,637 אז אני עדיין מייצרת מספר בין 0 ל-3, 65 00:04:12,637 --> 00:04:15,315 בואו נשים כמה סמנים על הקו שלנו, 66 00:04:15,315 --> 00:04:23,378 אז בואו נגיד שאם המספר בין 0 ל-1, הצבע יהיה סגול. 67 00:04:23,378 --> 00:04:26,153 אוקיי, זה סגול. 68 00:04:26,153 --> 00:04:30,504 ואז אם זה בין 1 ל-2, אנחנו נעשה את זה צהוב. 69 00:04:30,504 --> 00:04:35,533 ואם זה בין 2 ל-3, נעשה את זה אדום. 70 00:04:35,533 --> 00:04:38,651 נהדר. אז בואו נראה מה אנחנו יכולים לעשות עם if ו-else-if. 71 00:04:38,651 --> 00:04:43,542 אז אני אתחיל בלהגיד שאם המספר קטן מ-1, 72 00:04:43,542 --> 00:04:51,436 אז אם זה פחות מ-1, ואני יודעת שזה בין 0 ל-3, אז זה חייב להיות בטווח הזה. 73 00:04:51,436 --> 00:04:54,156 אז אני אגדיר את צבע המילוי לסגול. 74 00:04:54,156 --> 00:05:06,702 אחרת, אם המספר הוא קטן מ-2, אני אגדיר את צבע המילוי לצהוב... 75 00:05:06,702 --> 00:05:13,263 ואחרת, אני אגדיר את צבע המילוי לאדום 76 00:05:13,263 --> 00:05:15,596 נהדר! וזה עובד בדיוק כמו שתיכננתי. 77 00:05:15,596 --> 00:05:19,307 אז אם המספר קטן מ-1, שוב, זה בטווח הזה. 78 00:05:19,307 --> 00:05:23,603 אחרת, זה גדול או שווה ל-1, אבל זה גם קטן מ-2 79 00:05:23,603 --> 00:05:26,732 אז זה אומר שזה בטווח הזה, אז הצבע יהיה צהוב. 80 00:05:26,732 --> 00:05:31,900 אחרת, זה חייב להיות גדול או שווה מ-2 ולהיות בטווח הזה, 81 00:05:31,900 --> 00:05:36,277 והנה מקרה שלא יכולנו להגיד אם המספר קטן מ-2 82 00:05:36,277 --> 00:05:39,650 ואם המספר קטן מ-3, 83 00:05:39,650 --> 00:05:42,932 מכיוון שאם המספר קטן מ-1, הוא בהחלט קטן מ-2 84 00:05:42,932 --> 00:05:44,896 והוא גם בהחלט קטן מ-3 85 00:05:44,896 --> 00:05:46,781 אז צבע המטבע שלנו יהיה אדום. 86 00:05:46,781 --> 00:05:50,781 ולכן במקרה הזה, מאוד מועיל להשתמש ב-else-if.