1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. Malan: Pojďme nyní realizovat funkce, která není jen mít stranu 3 00:00:02,950 --> 00:00:05,920 účinek, ale místo toho se vrací návratová hodnota. 4 00:00:05,920 --> 00:00:09,150 Konkrétně, pojďme zavést funkci nazývá se pozitivní int, jehož 5 00:00:09,150 --> 00:00:11,490 Smyslem života je dělat přesně to. 6 00:00:11,490 --> 00:00:14,500 Konkrétně bych chtěl použít Tato funkce takto - 7 00:00:14,500 --> 00:00:18,770 int N dostane se kladný int. 8 00:00:18,770 --> 00:00:23,640 A pak vytisknout f, díky na procenta i jako 9 00:00:23,640 --> 00:00:26,490 Zástupný symbol, čárka, konec. 10 00:00:26,490 --> 00:00:29,030 >> Teď samozřejmě, získat pozitivní int dosud neexistuje. 11 00:00:29,030 --> 00:00:33,020 Takže pojďme slíbit, provést jej přidat k vrcholu mého souboru řádek 12 00:00:33,020 --> 00:00:37,110 jako int znamenat, že je tato funkce se vrátí v int - 13 00:00:37,110 --> 00:00:39,110 získat kladný int. 14 00:00:39,110 --> 00:00:43,000 A pojďme určit, výslovně stanoví, že tato funkce nebude mít žádný vstup, a 15 00:00:43,000 --> 00:00:45,570 tak jeho argumenty jsou neplatné. 16 00:00:45,570 --> 00:00:49,500 Pojďme se na dně mého souboru, jednoduše tak, že můžu mít main až nahoře, 17 00:00:49,500 --> 00:00:52,220 skutečně realizovat, nebo definovat tato funkce. 18 00:00:52,220 --> 00:00:55,120 >> Nejprve začneme se stejnou podpis, abych tak řekl - 19 00:00:55,120 --> 00:00:59,140 int získat pozitivní int neplatné. 20 00:00:59,140 --> 00:01:01,910 A teď pojďme realizovat se pozitivní int následovně. 21 00:01:01,910 --> 00:01:05,410 Pojďme deklarovat int, také volal N, ale bychom mohli nazvat téměř cokoliv 22 00:01:05,410 --> 00:01:11,360 bychom chtěli, proveďte následující kroky, zatímco některé podmínka je pravdivá, a vrátíme se 23 00:01:11,360 --> 00:01:13,030 tato podmínka za chvíli. 24 00:01:13,030 --> 00:01:20,800 Vytisknout f, prosím, dej mi pozitivní int, a teď pojďme použít Get int z 25 00:01:20,800 --> 00:01:23,290 CS50 knihovna skutečně dostat ten int. 26 00:01:23,290 --> 00:01:28,210 >> Ale v mém stavu, pojďme na to loop pokud N je menší než 1. 27 00:01:28,210 --> 00:01:31,260 Jinými slovy, pokud uživatel nespolupracuje tím, že mi 28 00:01:31,260 --> 00:01:36,260 s pozitivním int, dovolte mi, abych znovu prompt ho nebo ji znovu, a znovu, a znovu 29 00:01:36,260 --> 00:01:37,720 dokud on nebo ona dělá. 30 00:01:37,720 --> 00:01:40,360 Ale já jsem neskončil, protože v Konec této funkce jsem se provede na 31 00:01:40,360 --> 00:01:42,210 skutečně něco udělat s tímto vstupem. 32 00:01:42,210 --> 00:01:46,710 A tak jsem jít o návratu to s linkou jako zpáteční konce 33 00:01:46,710 --> 00:01:52,850 středník, čímž se vrací skutečný int na hlavní kdo volal tuto funkci. 34 00:01:52,850 --> 00:01:56,810 Nyní je třeba poznamenat, že i když získat pozitivní int vrátí do int, je to 35 00:01:56,810 --> 00:02:00,470 jistě fajn pro to, aby návrat pozitivní int specificky. 36 00:02:00,470 --> 00:02:04,170 Není zvláštní datový typ pro kladné celé číslo zvlášť, takže 37 00:02:04,170 --> 00:02:06,490 stačí použít vestavěný "int". 38 00:02:06,490 --> 00:02:11,250 >> A teď zpátky na lince devět, všimněte si, že jsem vytisknout N. Ale N na tomto řádku 39 00:02:11,250 --> 00:02:13,970 patří do N, která je deklarované v souladu osm. 40 00:02:13,970 --> 00:02:17,840 Tak to dopadá, můžete absolutně proměnné stejně pojmenované tak, 41 00:02:17,840 --> 00:02:20,250 pokud existují v rámci různé rozsahy. 42 00:02:20,250 --> 00:02:24,950 A připomenout, že rozsah je vymezen složené závorky, které nejvíce 43 00:02:24,950 --> 00:02:27,620 obklopují proměnné že jste definovali. 44 00:02:27,620 --> 00:02:30,370 >> Nyní pojďme sestavit a spustit tento program. 45 00:02:30,370 --> 00:02:35,210 Udělat funkce 1, tečka lomítko funkce 1. 46 00:02:35,210 --> 00:02:40,040 Pojďme dát pozitivní int-jako 50, a říká, že díky za 50 let. 47 00:02:40,040 --> 00:02:43,180 Zatím, pokud nebudeme spolupracovat, znovu spustit program, což je 48 00:02:43,180 --> 00:02:47,550 0, jsem vyzván znovu, nebo dávat to Negativní 1, jsem vyzván znovu. 49 00:02:47,550 --> 00:02:51,720 Ale jestli spolupracovat, poskytovat ji, říci, 50, já jsem poděkoval za 50 let. 50 00:02:51,720 --> 00:02:54,590