
הטקסט המלא של הדקות הראשונות בהרצאה «Returning a Value from a Function» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנקודה מאוד חשובה בעולם הפונקציות וזה החזרת ערך מפונקציה. בואו נבין רגע למה הכוונה. נניח שיש לנו כאן איזושהי פונקציה שמדפיסה ערך מקסימלי מבין שני ערכים.
בואו ניתן לה איזשהו ערך a, ניתן לה ערך b, לסוגריים כארגומנטים, ועל הפונקציה למצוא את הערך המקסימלי ביניהם. בואו נניח int max שווה בואו בעצם נשאל האם a יותר גדול מb אם כן ניקח את a אחרת ניקח את b ובואו בעצם נציג את הערך המקסימלי כאן אפילו נרשום פה max בצורה כזאת.
עכשיו אנחנו רוצים לבדוק את הפונקציה print max ולשלוח 10 ו-15 בואו נריץ ונראה שהוא אומר לי שהמקסימלי זה 15. הגיוני. בואו נשלח 20 ו-15 ואז הוא אומר לי שהמקסימלי הוא 20. מה לא בסדר בכל מה שעשינו פה?
אז מה שלא בסדר כאן ושכאשר אנחנו כותבים פונקציה אנחנו צריכים להבין שאנחנו רוצים להשתמש איתה גם בעתיד בכל מיני סיטואציות אחרות.
אוקיי, האם בכל סיטואציה אנחנו נרצה לחשב ערך מקסימלי ולהציג אותו בדיוק בפורמט הזה על המסך? יכול להיות שלפעמים אני ארצה לרשום max.2 ולפעמים אני ארצה לרשום the maximum number is וכדומה.
ולפעמים אני בכלל לא ארצה להציג את הערך על המסך. אז אתם יכולים להגיד טוב רגע בוא בעצם אל תרשום שום דבר איתו רק תציג אותו בצורה כזאת.
ואז עבור הערך הראשון נוכל לבצע max.2 ועבור הערך השני נוכל לבצע משהו כזה. בואו נניח נרד פה איזושהי שורה או אפילו אין צורך, נרשום פה the maximum is ואז נקרא לפונקציה והנה יש לנו שתי תצוגות שונות לגמרי של הצגת מספרים מקסימליים אבל ולא מספיק טוב כי מה יקרה אם מתישהו אנחנו נרצה להשתמש עם הפונקציה לצורך מציאת ערך מקסימלי אבל
אנחנו בכלל לא נרצה להציג את זה על המסך אלא לבצע איזשהו חישוב עם הערך אז אנחנו רואים שברגע שיש לנו פונקציה שמבצעת איזשהו חישוב מסוים לא תמיד כדאי לנו לבצע הצגה של החישוב למעשה אף פעם לא כדאי לנו להציג את החישוב בתוך הפונקציה.
אפילו שאנחנו כן רוצים להציג את החישוב. במילים אחרות, אם יש לנו פונקציה שמבצעת חישוב, אנחנו לא נרצה להציג את תוצאת החישוב בתוך הפונקציה.
אנחנו רוצים את תוצאת החישוב כאן אצלנו. שוב, אולי אני רוצה כאן לקחת איזשהו משתנה, the max, ולהכניס לתוכו את הערך המקסימלי ולהשתמש איתו פה באיזשהו חישוב.
בואו נניח אני רוצה להכפיל את המקסימלי ב-10 ואת זה להציג. בואו ניקח כאן x temp שווה ולהציג את הערך המקסימלי. אז איך אני בדיוק מקבל בחזרה את הערך המקסימלי שהפונקציה מצאה לנו?
אז התשובה היא שהפונקציה לא תציג אותו בתוך עצמה ולא תבצע איתו עוד דברים אלא תחזיר אותו על ידי פקודת ריטרן. זאת אומרת שאם הערך המקסימלי הוא נמצא בתוך המשתנה max שמוכר בפונקציה, פשוט נרשום ריטרן max.
עכשיו אנחנו יכולים להבין מה זה הווייד שתמיד כתוב כאן. ווייד זה אומר שהפונקציה לא מחזירה שום דבר. אם הפונקציה מחזירה ערך על ידי ריטרן, אנחנו לא רוצים לרשום פה ווייד, אלא את הסוג של הערך המוחזר.
סוג הערך המוחזר במקרה הזה זה אינטג'ר. אז אנחנו רוצים שהפונקציה תגדיר שהיא מחזירה אינטג'ר, ואז ריטרן יכול להחזיר את הערך האינטג'רי. איך אנחנו קוראים לפונקציה?
בואו נבוא לפה, print max ונשלח לה ערכים, בואו נניח 10-15 וכאן אנחנו יכולים להציג את הערך המקסימלי. אז נציג אותו בפעם הראשונה בצורה כזאת, ל-max ונציג אותו בפעם השנייה בצורה אחרת, ל-maximum is, זה אנחנו יכולים להוריד והנה הערך המקסימלי, את שני אלה אפשר למחוק, בצורה כזאת, בואו נריץ.
רק כעת הפונקציה יכולה להחזיר את הערך, אנחנו לא מציגים אותו בתוך הפונקציה, אנחנו מקבלים אותו פה, ופה אנחנו קובעים מה לעשות איתו. דוגמה נוספת יכולה להיות לקחת איזשהו משתנה temp שווה printmax, ודרך אגב השם של הפונקציה כבר לא אמור להיות printmax, אז בשלב הזה בואו נשנה אותו ל-findmax לדוגמה,
בואו נלך לכאן ונגדיר שהפונקציה נקראת findmax, בואו ניתן לה 40 ו-50 ואיזשהו temp מקבל את הערך כפול 10 בצורה כזאת. ואז כמובן הערך המקסימלי יהיה 500, אה, temp סליחה, יהיה 500. אנחנו רואים שהפונקציה החזירה לנו את הערך לאיזשהו temporary והכפלנו אותו ב-0.
בואו רגע טיפה נפריד את זה, נחזיר אותו ל-temp ונבצע איזשהו חישוב int temp 2 שווה ל-temp כפול 10. עשר והצגנו את טמפ שתיים אז פה טמפ שתיים אז אנחנו בעצם רואים שלא בהכרח אנחנו נרצה תמיד לבצע הצגה של הערך אולי אנחנו רוצים להשתמש איתו באופן אחר.
כאן הצגנו כאן עשינו איזשהו חישוב אולי בהמשך אנחנו נרצה לשמור אותו לקובץ אולי אנחנו נרצה לשמור אותו במאגר נתונים כלשהו אולי אנחנו רוצים לשלוח אותו באימייל.
לא תמיד אנחנו רוצים להציג את הערך שהוא תוצאת החישוב. לכן, פונקציות שמבצעות חישובים לא יציגו את הערך אלא יחזירו אותו על ידי ריטרן בצורה כזאת, מי שקורא לה יקבל את הערך בחזרה, הערך הרי מוחזר מפה לכאן,