1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. MALAN: Låt oss nu genomföra en funktion som inte bara har en sida 3 00:00:02,950 --> 00:00:05,920 effekt, men i stället åter ett returvärde. 4 00:00:05,920 --> 00:00:09,150 Specifikt ska vi genomföra en funktion kallas få positiv int vars 5 00:00:09,150 --> 00:00:11,490 syfte i livet är att göra just detta. 6 00:00:11,490 --> 00:00:14,500 Specifikt, jag vill använda denna funktion så här - 7 00:00:14,500 --> 00:00:18,770 int N får bli positiv int. 8 00:00:18,770 --> 00:00:23,640 Och sedan skriva ut f, tack för procent i som en 9 00:00:23,640 --> 00:00:26,490 platshållare, kommatecken, slut. 10 00:00:26,490 --> 00:00:29,030 >> Nu naturligtvis, få positiv int ännu inte existerar. 11 00:00:29,030 --> 00:00:33,020 Så låt oss lova att genomföra den genom tillsats till den övre delen av min fil en linje 12 00:00:33,020 --> 00:00:37,110 som int betyda att denna funktion kommer tillbaka i int - 13 00:00:37,110 --> 00:00:39,110 få positiv int. 14 00:00:39,110 --> 00:00:43,000 Och låt oss anger uttryckligen att detta Funktionen kommer inte att ta någon ingång, och 15 00:00:43,000 --> 00:00:45,570 så argumenten är ogiltiga. 16 00:00:45,570 --> 00:00:49,500 Låt oss nu i botten av min fil, helt enkelt så att jag kan hålla på där uppe, 17 00:00:49,500 --> 00:00:52,220 faktiskt genomför eller definiera denna funktion. 18 00:00:52,220 --> 00:00:55,120 >> Först börjar vi med samma signatur, så att säga - 19 00:00:55,120 --> 00:00:59,140 int få positiv int tomrum. 20 00:00:59,140 --> 00:01:01,910 Och nu ska vi genomföra få positiv int enligt följande. 21 00:01:01,910 --> 00:01:05,410 Låt oss förklara en int, även kallad N men Vi kan kalla det vad som helst 22 00:01:05,410 --> 00:01:11,360 vi skulle vilja, gör följande medan vissa villkoret är sant, och vi ska återkomma till 23 00:01:11,360 --> 00:01:13,030 detta villkor i ett ögonblick. 24 00:01:13,030 --> 00:01:20,800 Utskrifts f, ge mig en positiv int, och nu ska vi använda Get int från 25 00:01:20,800 --> 00:01:23,290 den CS50 biblioteket för att faktiskt få det int. 26 00:01:23,290 --> 00:01:28,210 >> Men i mitt tillstånd, låt oss göra detta slinga så länge som N är mindre än 1. 27 00:01:28,210 --> 00:01:31,260 Med andra ord, så länge som användaren inte samarbetar genom att ge mig 28 00:01:31,260 --> 00:01:36,260 med en positiv int, låt mig åter prompt honom eller henne igen och igen, och igen 29 00:01:36,260 --> 00:01:37,720 tills han eller hon gör. 30 00:01:37,720 --> 00:01:40,360 Men jag är ännu inte gjort, eftersom det vid den slutet av denna funktion jag behöver 31 00:01:40,360 --> 00:01:42,210 faktiskt göra något med den ingången. 32 00:01:42,210 --> 00:01:46,710 Och så ska jag gå om återvänder den med en rad som retur slut 33 00:01:46,710 --> 00:01:52,850 semikolon, och därigenom åter en verklig int till huvud som kallade den här funktionen. 34 00:01:52,850 --> 00:01:56,810 Nu är det värt att notera att även om få positiva int avkastning i int, det är 35 00:01:56,810 --> 00:02:00,470 säkert bra för den att återvända en positiv int specifikt. 36 00:02:00,470 --> 00:02:04,170 Det finns inte en speciell datatyp för positivt heltal bestämt så vi 37 00:02:04,170 --> 00:02:06,490 helt enkelt använda den inbyggda "int." 38 00:02:06,490 --> 00:02:11,250 >> Nu tillbaka på linje nio, märker att jag är skriva ut N. Men N i denna linje 39 00:02:11,250 --> 00:02:13,970 tillhör den N som är deklarerat i linje åtta. 40 00:02:13,970 --> 00:02:17,840 Så det visar sig att du kan absolut ha variabler med samma namn så 41 00:02:17,840 --> 00:02:20,250 länge de finns inom olika omfattningar. 42 00:02:20,250 --> 00:02:24,950 Och minns att omfattningen definieras av klammerparenteserna som närmast 43 00:02:24,950 --> 00:02:27,620 omger den rörliga som du har definierat. 44 00:02:27,620 --> 00:02:30,370 >> Nu ska vi sammanställa och köra programmet. 45 00:02:30,370 --> 00:02:35,210 Gör funktioner 1, punkt slash funktioner 1. 46 00:02:35,210 --> 00:02:40,040 Låt oss ge det en positiv int-liknande 50, och det står tack för 50. 47 00:02:40,040 --> 00:02:43,180 Under tiden, om vi inte samarbetar, kör programmet igen, vilket ger 48 00:02:43,180 --> 00:02:47,550 0, jag tillfrågad igen, eller ge den -1, jag tillfrågad igen. 49 00:02:47,550 --> 00:02:51,720 Men om jag samarbetar förse den med, säga, 50, jag tackade för den 50. 50 00:02:51,720 --> 00:02:54,590