1 00:00:00,981 --> 00:00:05,860 חזרנו לתוכנית שלנו שמשתמשת בפונקציה בכדי לצייר את וינסטון ארבע פעמים. 2 00:00:05,860 --> 00:00:11,472 ושיניתי אותה קצת על מנת להראות באיזה גיל הוא נמצא בכל נקודה של בחיים, ותראו למה בקרוב. 3 00:00:11,472 --> 00:00:16,290 אבל קודם אני צריכה לספר לכם משהו על ווינסטון: לוינסטון יש התמכרות לסופגניות. 4 00:00:16,290 --> 00:00:21,954 הוא אוכל שלוש מהן ביום. זו הסיבה כנראה לכך שהפנים שלו כל-כך גדולות וצהובות. 5 00:00:21,954 --> 00:00:32,120 אז כדי להזהיר וינסטון שסופגניות הן רעות בשבילו, אני רוצה לשנות את התוכנית כך שתראה כמה סופגניות הוא אכל בכל נקודה בחיים שלו. 6 00:00:32,120 --> 00:00:46,119 לדוגמה, כשהוא בן שנתיים, זה אומר שהוא אכל 2 פעמים (שנתיים) כפול 365 פעמים (מספר הימים בשנה) כפול 3 פעמים (שלוש פעמים ביום), אז פי שלוש ביום, כפול 365 ימים, לשנתיים. 7 00:00:46,119 --> 00:00:54,669 אנחנו רק נציג את זה מתחת לכותרת הזו, אז וואו! אלפיים סופגניות, זה הרבה סופגניות למישהו בן שנתיים. 8 00:00:54,669 --> 00:01:04,272 עכשיו כאשר הוא בן 14, בוא נראה, יש לו 3 פעמים ביום כפול 365 ימים כפול 14 שנים. 9 00:01:04,272 --> 00:01:13,455 זה חמש עשרה אלף סופגניות. בסדר. אז אני יכולה להמשיך את המתמטיקה הזאת, אבל אני מתחילה לשים לב דפוס. 10 00:01:13,455 --> 00:01:20,784 אני חוזרת על החישובים שלי כאן, ואני משנה רק דבר אחד: מספר השנים. 11 00:01:20,784 --> 00:01:28,116 בכל פעם שאני רואה קוד שחוזר על עצמו ככה, אני חושבת לעצמי, "הממ, אולי אני יכולה להפוך את זה לפונקציה?" 12 00:01:28,116 --> 00:01:33,095 כן, בהחלט, אנחנו יכולים. אז בואו נעשה את זה עכשיו. 13 00:01:33,095 --> 00:01:41,006 אני אגדיר את הפונקציה כאן למעלה ואקרא לפונקציה בשם calcTotalDonuts (נכתוב: calcTotalDonuts = function) 14 00:01:41,006 --> 00:01:49,239 היא הולכת לקבל פרמטר אחד, את מספר שנים, כי זה הדבר היחיד שאנו משנים כל הזמן בחישוב הזה 15 00:01:49,239 --> 00:02:00,930 ואז בפנים, נוכל לעשות את החישוב, לשמור אותו לתוך משתנה, כך שיהיה שהמשתנה יהיה מספר השנים (numYears) כפול 3 פעמים כפול 365. 16 00:02:00,930 --> 00:02:12,862 בסדר, אז עכשיו שיש לנו את הפונקציה הזו, אני הולכת להחליף את הביטוי הזה כאן עם calcTotalDonuts - הקריאה לפונקציה - ואני אעביר לה את הערך "2". 17 00:02:12,862 --> 00:02:17,427 טוב, עכשיו אנחנו לא רואים את הסך הכל בכלל. 18 00:02:17,427 --> 00:02:26,515 המממ, אוקיי, מה קרה? ובכן, הפונקציה שלנו חישבה את הסך הכל כאן, אבל היא לא סיפרה לאף אחד על הסכום. 19 00:02:26,515 --> 00:02:33,824 זה כמו שאם מורה קורא לך בכיתה בכדי להשיב על שאלה, ואתה תענה לו בראש שלך אבל אתה מתבייש לומר את התשובה. 20 00:02:33,824 --> 00:02:37,638 עשית את העבודה, אבל המורה שלך לעולם לא יידע על כך. 21 00:02:37,638 --> 00:02:45,971 אם אנחנו רוצים שהפונקציה תתקשר את הערך למי שקרא לה, הפונקציה צריכה להחזיר את הערכים באופן ספציפי. 22 00:02:45,971 --> 00:02:55,221 אז בשביל שפונקציה תחזיר ערך, אנחנו צריכים להגיד מהו סוג הערך שהיא תחזיר, ואז מה הערך עצמו. אולי זה משתנה, או ערך או ביטוי. 23 00:02:55,221 --> 00:03:02,138 אז כאן נגיד שאנחנו רוצים להחזיר את זה totalDonuts חזרה, בסדר? אז מי שקורא לאותה הפונקציה הולך לקבל את התשובה הזו. 24 00:03:02,138 --> 00:03:05,021 כעת הערך שלנו מוצג, איזה כיף! 25 00:03:05,021 --> 00:03:10,477 בעצם אנחנו יכולים לקצר את הפונקציה שלנו, אנחנו אפילו לא צריכים לאחסן אותו לתוך משתנה, נוכל לקחת את הביטוי הזה כאן 26 00:03:10,477 --> 00:03:15,418 לשים אותו בערך שהפונקציה מחזירה (ה-return), ואז זו רק שורה אחד של קוד. מגניב. 27 00:03:15,418 --> 00:03:24,558 בסדר, אז עכשיו אנו יכולים לעבור ולחשב את מספר הסופגניות הכולל בכל נקודה בחיים על-ידי פשוט לקרוא לפונקציה זו, ולהעביר לה את מספר השנים. 28 00:03:24,558 --> 00:03:36,426 בוא נראה, זה (calcTotalDonuts(25, נמקם את זה כראוי, (calcTotalDonuts(65 29 00:03:36,426 --> 00:03:45,239 בסדר! וואו, אז אם הוא יגיע עד גיל 65, הוא יאכל 70,000 סופגניות. זה הרבה סופגניות... 30 00:03:45,239 --> 00:03:48,351 אני לא חושבת שוינסטון הולך להגיע לזה... 31 00:03:48,351 --> 00:03:53,325 אבל עכשיו כשהפכנו את זה לפונקציה, זה מאוד קל לנו לשנות חלקים ממנה. 32 00:03:53,325 --> 00:03:59,211 אם וינסטון יראה את זה ויאמר "רגע, רגע, זה המון. מה אם אני פשוט אוכל אחת ביום? " 33 00:03:59,211 --> 00:04:04,432 טוב אנחנו יכולים פשוט ללכת לכאן, לשנות את המספר לאחד, והכל ישתנה. 34 00:04:04,432 --> 00:04:12,698 אז זה סך הכל 23,000. עדיין הרבה. אז אולי וינסטון יגיד: "בסדר, בסדר, מה אם אני פשוט אוכל אחת בשבוע?" כן, זה הגיוני, בסדר. 35 00:04:12,698 --> 00:04:17,793 אז אנחנו פשוט יכולים לשנות את 365 ל-50, כי יש 50 שבועות בשנה, נכון? 36 00:04:17,793 --> 00:04:23,361 טוב, זה הרבה יותר טוב, 3,000 דונאטס, נשמע הגיוני. 37 00:04:23,361 --> 00:04:27,361 מעולה, אז כפי שראיתם, עם פונקציות וערכים חוזרים, אנחנו יכולים לחסוך בקוד ולהציל חיים!