1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. Malan: Нека сега да се приложи функция, която не просто да има страна 3 00:00:02,950 --> 00:00:05,920 ефект, но вместо да се връща връщане на стойност. 4 00:00:05,920 --> 00:00:09,150 Конкретно, нека приложи функция нарича получите положителен вътр чиито 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 получава получите положителен вътр. 8 00:00:18,770 --> 00:00:23,640 И след това да отпечатате е, благодаря за процента и като 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 получите положителен вътр. 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 получите положителен вътр невалидна. 20 00:00:59,140 --> 00:01:01,910 А сега нека да приложат получите положителен вътр както следва. 21 00:01:01,910 --> 00:01:05,410 Да обявят ПНА, също наречена 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 Print е, моля да ми даде положителен ПНА, а сега нека използваме Get вътр от 25 00:01:20,800 --> 00:01:23,290 CS50 на библиотеката, за да действително получи, че вътр. 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 с положителен ПНА, позволете ми отново бързо него отново и отново, и отново 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 Сега тя е да се отбележи, че въпреки че получите положителни вътр връща в ПНА, че е 35 00:01:56,810 --> 00:02:00,470 със сигурност добре за него да се върне положително вътр конкретно. 36 00:02:00,470 --> 00:02:04,170 Там не е специален тип данни за положително число по-специално, за да можем 37 00:02:04,170 --> 00:02:06,490 просто да използвате вградената в "вътр." 38 00:02:06,490 --> 00:02:11,250 >> Сега обратно на ред девет, забележите, че аз съм отпечатване N. Но N в този ред 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 Да го даде положителен INT-като 50, и то се казва благодаря за 50. 47 00:02:40,040 --> 00:02:43,180 В същото време, ако ние не си сътрудничат, стартирате програмата отново, тя дава 48 00:02:43,180 --> 00:02:47,550 0, аз съм подканени отново, или да го даде отрицателен едно, аз съм подканени отново. 49 00:02:47,550 --> 00:02:51,720 Но ако си сътрудничат му предоставя, казват, 50, аз съм благодари за 50. 50 00:02:51,720 --> 00:02:54,590