1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> דוד י מלאן: בואו עכשיו ליישם פונקציה שלא רק שיש לי צד 3 00:00:02,950 --> 00:00:05,920 השפעה, אך במקום זאת חוזרת ערך החזרה. 4 00:00:05,920 --> 00:00:09,150 באופן ספציפי, בואו ליישם פונקציה התקשרתי לקבל int החיובי ש 5 00:00:09,150 --> 00:00:11,490 מטרה בחיים היא לעשות בדיוק את זה. 6 00:00:11,490 --> 00:00:14,500 באופן ספציפי, אני רוצה להשתמש פונקציה זו באופן הבא - 7 00:00:14,500 --> 00:00:18,770 int N מקבל מקבל int החיובי. 8 00:00:18,770 --> 00:00:23,640 ולאחר מכן f הדפסה, הודות לאחוזים אני כמו 9 00:00:23,640 --> 00:00:26,490 מציין מיקום, פסיק, הסוף. 10 00:00:26,490 --> 00:00:29,030 >> עכשיו כמובן, לקבל חיובי int אינו קיים עדיין. 11 00:00:29,030 --> 00:00:33,020 אז בואו מבטיחים ליישם אותו על ידי הוספה לחלק העליון של התיק שלי קו 12 00:00:33,020 --> 00:00:37,110 כמו מסמל int שפונקציה זו יחזור בint - 13 00:00:37,110 --> 00:00:39,110 לקבל int החיובי. 14 00:00:39,110 --> 00:00:43,000 ובואו תציינו במפורש שזה פונקציה לא תיקח כל קלט, ו 15 00:00:43,000 --> 00:00:45,570 כך טענותיו בטלות. 16 00:00:45,570 --> 00:00:49,500 בואו עכשיו בחלק התחתון של התיק שלי, פשוט כדי שאוכל לשמור עיקרי למעלה, 17 00:00:49,500 --> 00:00:52,220 למעשה ליישם או להגדיר בפונקציה זו. 18 00:00:52,220 --> 00:00:55,120 >> ראשית עלינו להתחיל עם אותו חתימה, כביכול - 19 00:00:55,120 --> 00:00:59,140 int לקבל חלל int חיובי. 20 00:00:59,140 --> 00:01:01,910 ועכשיו בואו ניישם את int החיובי כדלקמן. 21 00:01:01,910 --> 00:01:05,410 בואו נכריז int, המכונה גם N אבל אנחנו יכולים לקרוא לזה כמעט כל דבר 22 00:01:05,410 --> 00:01:11,360 אנחנו רוצים, בצעו את הפעולות הבאות בעוד כמה תנאי הוא אמת, ונחזור ל 23 00:01:11,360 --> 00:01:13,030 מצב זה בין רגע. 24 00:01:13,030 --> 00:01:20,800 f הדפסה, אנא תן לי int חיובי, ועכשיו בואו להשתמש קבל int מ 25 00:01:20,800 --> 00:01:23,290 ספריית CS50 בעצם לקבל int ש. 26 00:01:23,290 --> 00:01:28,210 >> אבל במצב שלי, בואו נעשיתי את זה לולאה כל עוד N הוא פחות מ 1. 27 00:01:28,210 --> 00:01:31,260 במילים אחרות, כל עוד המשתמשים לא משתף פעולה על ידי מתן לי 28 00:01:31,260 --> 00:01:36,260 עם int חיובי, תן ​​לי מחדש את הפקודה לו או לה שוב, ושוב, ושוב 29 00:01:36,260 --> 00:01:37,720 עד שהוא או היא עושה. 30 00:01:37,720 --> 00:01:40,360 אבל אני לא עושה זאת, כי ב סוף הפונקציה זו אני צריך 31 00:01:40,360 --> 00:01:42,210 באמת לעשות משהו עם קלט ש. 32 00:01:42,210 --> 00:01:46,710 ואז אני הולך ללכת על חזרה זה עם קו כמו סוף התמורה 33 00:01:46,710 --> 00:01:52,850 פסיק, ובכך חוזר בפועל int לעיקרי שקראו לפונקציה זו. 34 00:01:52,850 --> 00:01:56,810 עכשיו זה ראוי לציין כי למרות לקבל תשואות חיוביות בint int, זה 35 00:01:56,810 --> 00:02:00,470 בהחלט קנס על להחזיר אותו int חיובי במיוחד. 36 00:02:00,470 --> 00:02:04,170 אין נתונים מסוג מיוחד עבור מספר חיובי במיוחד, ולכן אנחנו 37 00:02:04,170 --> 00:02:06,490 פשוט להשתמש נבנה ב" int ". 38 00:02:06,490 --> 00:02:11,250 >> עכשיו בחזרה על קו תשע, שם לב שאני להדפיס את נ 'אבל לא זמין בקו הזה 39 00:02:11,250 --> 00:02:13,970 שייך לN שהכריז בקו שמונה. 40 00:02:13,970 --> 00:02:17,840 אז מתברר יכול בהחלט יש לך משתנים בעלי שם זהה ולכן 41 00:02:17,840 --> 00:02:20,250 עוד הם קיימים בתוך טווחים שונים. 42 00:02:20,250 --> 00:02:24,950 ולהיזכר ההיקף שהוגדר על ידי הסוגריים המסולסלים שהצמוד ביותר 43 00:02:24,950 --> 00:02:27,620 מקיף את המשתנה שהגדרת. 44 00:02:27,620 --> 00:02:30,370 >> עכשיו בואו ולקמפל להפעיל את התכנית. 45 00:02:30,370 --> 00:02:35,210 פונקציות הפוך 1, נקודה סלאש פונקציות 1. 46 00:02:35,210 --> 00:02:40,040 בואו ניתן לו 50 כמו int חיוביים, וזה אומר תודה על 50. 47 00:02:40,040 --> 00:02:43,180 בינתיים, אם אנחנו לא נשתף פעולה, מפעיל את התכנית שוב, זה נותן 48 00:02:43,180 --> 00:02:47,550 0, אני מתבקש שוב, או לתת לו שלילי 1, אני מתבקש שוב. 49 00:02:47,550 --> 00:02:51,720 אבל אם אני משתף פעולה במתן אותו עם, אומרים, 50, אני הודיתי ל50. 50 00:02:51,720 --> 00:02:54,590