Return to Video

הצהרות If/Else - חלק ב׳

  • 0:02 - 0:04
    הנה איפה שהפסקנו עם משחק הטלת המטבע שלנו.
  • 0:04 - 0:07
    התחלנו בכך שיצרנו מספר אקראי (רנדומלי) בין 0 ל-1,
  • 0:07 - 0:09
    ואז עיגלנו את המספר הזה למספר השלם הקרוב ביותר
  • 0:09 - 0:12
    כך שקיבלנו מספר שהוא או 0 או 1
  • 0:12 - 0:19
    ואז ציירנו את המטבע הסופר אמיתי שלנו עם אליפסה שהייתה או סגולה או צהובה, תלוי באיזה מספר יצא.
  • 0:19 - 0:21
    והנה הקוד שאיתו עשינו את זה.
  • 0:21 - 0:26
    אז אמרנו שאם המספר השלם (ה-integer), שווה ל-0, אז נמלא את האליפסה בצבע סגול, אחרת, נמלא אותה בצהוב.
  • 0:26 - 0:28
    ואז ציירנו את המטבע כאן למטה.
  • 0:28 - 0:32
    אבל עכשיו החלטתי שלמעשה למטבע שלי יש 3 צדדים. כן, מטבע עם שלושה צדדים.
  • 0:32 - 0:34
    אז בואו נוסיף צד שלישי.
  • 0:34 - 0:37
    אני הולכת להתחיל ביצירת מספר בין 0 ל-2,
  • 0:37 - 0:42
    ואחרי שנעגל אותו, נקבל מספר שלם שהוא או 0,1 או 2
  • 0:42 - 0:46
    אבל אם נסתכל על הקוד שלנו שמצייר, אנחנו מוכנים רק לשני מקרים.
  • 0:46 - 0:49
    אם integer הוא 0, המטבע סגול, אחרת, הוא צהוב.
  • 0:49 - 0:52
    אבל עכשיו, ה״אחרת״ יכול להיות גם 1 או 2.
  • 0:52 - 0:55
    אבל רגע, מה אם אני אעשה את מה שעשינו כבר קודם
  • 0:55 - 0:57
    בתוך הבלוק הזה של ה-else. אני פשוט אגיד:
  • 0:57 - 1:05
    אם integer שווה ל-1 אז צבע המילוי צריך להיות צהוב, כמו מקודם,
  • 1:05 - 1:11
    אחרת (else), צבע המילוי יהיה אדום. אדום זה טוב.
  • 1:11 - 1:15
    אז מה שזה אומר, שאם integer שווה ל-0, הצבע יהיה סגול,
  • 1:15 - 1:19
    אחרת, אם זה 1, הצבע יהיה צהוב,
  • 1:19 - 1:25
    אחרת, זאת אומרת, אם זה לא 0 וזה לא 1, זה חייב להיות 2, תעשה אותו אדום.
  • 1:25 - 1:29
    אני אלחץ אתחול כמה פעמים. זה עובד! ווהוו!
  • 1:29 - 1:32
    אז אם הייתי רוצה להוסיף עוד צדדים למטבע שלי,
  • 1:32 - 1:38
    יכולתי ללכת לכאן למעלה, לעשות את זה 0 עד 3, ואז להיכנס עמוק יותר לבלוק ה-else ולהוסיף עוד if-else-ים עוד ועוד
  • 1:38 - 1:40
    עד שיהיו לי זיליון בלוקים מיושרים אחד אחרי השני.
  • 1:40 - 1:45
    ורק אז אני אבין שהקוד הזה מזעזע! די דוחה!
  • 1:45 - 1:48
    קוד אמור להיות קל לקריאה ויפה, לא מכוער ומסובך.
  • 1:48 - 1:50
    אז הנה מה שאנחנו הולכים לעשות:
  • 1:50 - 1:56
    בכל פעם שיש לכם רק הצהרת if אחת או הצהרת if-else בתוך בלוק של else,
  • 1:56 - 1:58
    זה אומר שאנחנו לא עושים משהו אחר מעבר לבלוק הזה,
  • 1:58 - 2:04
    אנחנו לא משנים את צבע קו המתאר, אין לנו עוד הצהרות if, כלום.
  • 2:04 - 2:08
    כל מה שיש לנו הוא הצהרת ה-if היחידה הזו, ואולי היא באה עם בלוק של else
  • 2:08 - 2:13
    אז אנחנו יכולים לשלב את התנאי הזה עם השורה לפני ולהגיד:
  • 2:13 - 2:17
    else if integer = 1 אז תשנה את הצבע לצהוב.
  • 2:17 - 2:22
    ואז בלוק ה-else האחרון הזה לא צריך להיות מיושר פנימה יותר, הוא פשוט מגיע בסוף בעצמו.
  • 2:22 - 2:27
    נהדר! אז עכשיו מה שזה אומר זה שאם integer שווה ל-0, הצבע יהיה סגול,
  • 2:27 - 2:30
    אחרת אם integer שווה ל-1, הצבע יהיה צהוב,
  • 2:30 - 2:34
    אחרת, אם שני אלו הם שקר, הצבע יהיה אדום.
  • 2:34 - 2:38
    אני לוחצת על אתחול כמה פעמים ואתם רואים שזה עדיין עובד.
  • 2:38 - 2:42
    נהדר! והדבר המגניב ביותר בזה הוא שיכולים להיות להיות כמה משפטי else-if שאנחנו רוצים,
  • 2:42 - 2:45
    מה שעושה את זה ממש קל להוסיף עוד צדדים למטבע שלי.
  • 2:45 - 2:48
    אז בואו נעשה את זה עכשיו, אני הולכת לייצר מספר בין 0 ל-3,
  • 2:48 - 2:56
    ואז להוסיף עוד בלוק else שאומר שאם integer שווה ל-2
  • 2:56 - 3:00
    נעשה את צבע המילוי אדום,
  • 3:00 - 3:03
    ואז בלוק ה-else האחרון הזה יהיה למקרה ש-integer שווה ל-3,
  • 3:03 - 3:09
    ונעשה את זה כחול. נהדר!
  • 3:09 - 3:13
    אוקיי, אז בשביל לעשות את זה, אתם תמיד צריכים להתחיל עם הצהרת if,
  • 3:13 - 3:17
    ואז אתם יכולים לשים כמה הצהרות else-if שתרצו,
  • 3:17 - 3:19
    ואז הבלוק האחרון הזה פה הוא אופציונאלי.
  • 3:19 - 3:22
    למעשה אנחנו יכולים להסתדר בלעדיו, וזה אפשרי שכל אלו יהיו שקר,
  • 3:22 - 3:24
    כך שאף אחד מהבלוקים הללו לא ייתבצע.
  • 3:24 - 3:30
    אבל כל עוד יש לנו אותו שם, אז בטוח שאחד מהבלוקים האלו ירוץ.
  • 3:30 - 3:37
    מגניב? עכשיו זה מקרה שבו לא ממש משנה אם תכתוב f else-if else-if else
  • 3:37 - 3:46
    או שפשוט תכתבו הצהרות if כמו שעשינו בהתחלה, כמו למשל אם integer שווה ל-3.
  • 3:46 - 3:51
    וזה בגלל שזה לעולם לא אפשרי למספר שלם להיות שווה גם ל-0 וגם ל-1,2,3.
  • 3:51 - 3:54
    נהדר. אז התנאים האלו סותרים.
  • 3:54 - 3:57
    זאת אומרת שרק אחד מהבלוקים האלו ירוץ אי פעם.
  • 3:57 - 3:58
    אבל זה לא תמיד המקרה.
  • 3:58 - 4:02
    מה אם היינו עושים משחק מבלי לעגל את המספר העשרוני למספר שלם?
  • 4:02 - 4:04
    אז אני אפטר מהחלק שבו אנו מעגלים את המספר,
  • 4:04 - 4:07
    והחלק בו אנחנו מציירים את זה למסך
  • 4:07 - 4:09
    ובואו נמציא כמה חוקים חדשים למשחק שלי.
  • 4:09 - 4:13
    אז אני עדיין מייצרת מספר בין 0 ל-3,
  • 4:13 - 4:15
    בואו נשים כמה סמנים על הקו שלנו,
  • 4:15 - 4:23
    אז בואו נגיד שאם המספר בין 0 ל-1, הצבע יהיה סגול.
  • 4:23 - 4:26
    אוקיי, זה סגול.
  • 4:26 - 4:31
    ואז אם זה בין 1 ל-2, אנחנו נעשה את זה צהוב.
  • 4:31 - 4:36
    ואם זה בין 2 ל-3, נעשה את זה אדום.
  • 4:36 - 4:39
    נהדר. אז בואו נראה מה אנחנו יכולים לעשות עם if ו-else-if.
  • 4:39 - 4:44
    אז אני אתחיל בלהגיד שאם המספר קטן מ-1,
  • 4:44 - 4:51
    אז אם זה פחות מ-1, ואני יודעת שזה בין 0 ל-3, אז זה חייב להיות בטווח הזה.
  • 4:51 - 4:54
    אז אני אגדיר את צבע המילוי לסגול.
  • 4:54 - 5:07
    אחרת, אם המספר הוא קטן מ-2, אני אגדיר את צבע המילוי לצהוב...
  • 5:07 - 5:13
    ואחרת, אני אגדיר את צבע המילוי לאדום
  • 5:13 - 5:16
    נהדר! וזה עובד בדיוק כמו שתיכננתי.
  • 5:16 - 5:19
    אז אם המספר קטן מ-1, שוב, זה בטווח הזה.
  • 5:19 - 5:24
    אחרת, זה גדול או שווה ל-1, אבל זה גם קטן מ-2
  • 5:24 - 5:27
    אז זה אומר שזה בטווח הזה, אז הצבע יהיה צהוב.
  • 5:27 - 5:32
    אחרת, זה חייב להיות גדול או שווה מ-2 ולהיות בטווח הזה,
  • 5:32 - 5:36
    והנה מקרה שלא יכולנו להגיד אם המספר קטן מ-2
  • 5:36 - 5:40
    ואם המספר קטן מ-3,
  • 5:40 - 5:43
    מכיוון שאם המספר קטן מ-1, הוא בהחלט קטן מ-2
  • 5:43 - 5:45
    והוא גם בהחלט קטן מ-3
  • 5:45 - 5:47
    אז צבע המטבע שלנו יהיה אדום.
  • 5:47 - 5:51
    ולכן במקרה הזה, מאוד מועיל להשתמש ב-else-if.
Title:
הצהרות If/Else - חלק ב׳
Description:

ניתן לצפות בסרטים נוספים בכתובת:
https://www.khanacademy.org/cs/programming/

more » « less
Video Language:
English
Duration:
05:53

Hebrew subtitles

Revisions