1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. MALAN: La oss nå gjennomføre en funksjon som ikke bare har en side 3 00:00:02,950 --> 00:00:05,920 effekt, men i stedet går tilbake en returverdi. 4 00:00:05,920 --> 00:00:09,150 Nærmere bestemt, la oss gjennomføre en funksjon kalt få positive int hvis 5 00:00:09,150 --> 00:00:11,490 formål i livet er å gjøre akkurat det. 6 00:00:11,490 --> 00:00:14,500 Spesielt vil jeg gjerne bruke denne funksjonen som følger - 7 00:00:14,500 --> 00:00:18,770 int N blir få positiv int. 8 00:00:18,770 --> 00:00:23,640 Og deretter skrive ut f, takk for prosent i som en 9 00:00:23,640 --> 00:00:26,490 plassholder, komma, slutt. 10 00:00:26,490 --> 00:00:29,030 >> Nå selvfølgelig, få positiv int ikke finnes ennå. 11 00:00:29,030 --> 00:00:33,020 Så la oss lover å gjennomføre det ved legge til toppen av min fil en linje 12 00:00:33,020 --> 00:00:37,110 som int betyr at denne funksjonen vil komme tilbake i int - 13 00:00:37,110 --> 00:00:39,110 få positiv int. 14 00:00:39,110 --> 00:00:43,000 Og la oss angi eksplisitt at dette Funksjonen vil ikke ta noen innspill, og 15 00:00:43,000 --> 00:00:45,570 så sine argumenter er ugyldige. 16 00:00:45,570 --> 00:00:49,500 La oss nå på bunnen av filen min, rett og slett slik at jeg kan holde hoved opp toppen, 17 00:00:49,500 --> 00:00:52,220 faktisk implementere eller definere denne funksjonen. 18 00:00:52,220 --> 00:00:55,120 >> Først starter vi med det samme signatur, så å si - 19 00:00:55,120 --> 00:00:59,140 int få positiv int ugyldig. 20 00:00:59,140 --> 00:01:01,910 Og nå skal vi implementere få positive int som følger. 21 00:01:01,910 --> 00:01:05,410 La oss erklære en int, også kalt N men Vi kan kalle det nesten alt 22 00:01:05,410 --> 00:01:11,360 vi ønsker, gjør du følgende mens noen betingelsen er sann, og vi vil komme tilbake til 23 00:01:11,360 --> 00:01:13,030 at tilstanden i et øyeblikk. 24 00:01:13,030 --> 00:01:20,800 Skriv ut f, vennligst gi meg en positiv int, og nå skal vi bruke Get int fra 25 00:01:20,800 --> 00:01:23,290 den CS50 biblioteket til faktisk få det int. 26 00:01:23,290 --> 00:01:28,210 >> Men i min tilstand, la oss gjøre dette sløyfe, så lenge N er mindre enn 1. 27 00:01:28,210 --> 00:01:31,260 Med andre ord, så lenge brukeren ikke samarbeider ikke ved å gi meg 28 00:01:31,260 --> 00:01:36,260 med en positiv int, la meg igjen teksten ham eller henne igjen, og igjen, og igjen 29 00:01:36,260 --> 00:01:37,720 før han eller hun gjør. 30 00:01:37,720 --> 00:01:40,360 Men jeg er ikke ferdig ennå, fordi på den slutten av denne funksjon jeg å 31 00:01:40,360 --> 00:01:42,210 faktisk gjøre noe med den inngangen. 32 00:01:42,210 --> 00:01:46,710 Og så kommer jeg til å gå om retur det med en linje som avkastning slutten 33 00:01:46,710 --> 00:01:52,850 semikolon, og dermed returnere en faktisk int til hoved som kalte denne funksjonen. 34 00:01:52,850 --> 00:01:56,810 Nå er det verdt å merke seg at selv om få positive int avkastning i int, er det 35 00:01:56,810 --> 00:02:00,470 sikkert greit for det å gå tilbake en positiv int spesifikt. 36 00:02:00,470 --> 00:02:04,170 Det er ikke en spesiell datatype for positive heltall spesielt, så vi 37 00:02:04,170 --> 00:02:06,490 bare bruke den innebygde "int." 38 00:02:06,490 --> 00:02:11,250 >> Nå tilbake på linjen ni, merker at jeg er skrive ut N. Men N i denne linjen 39 00:02:11,250 --> 00:02:13,970 tilhører N som er erklært i tråd åtte. 40 00:02:13,970 --> 00:02:17,840 Så det viser seg at du kan absolutt ha variabler identiske navn så 41 00:02:17,840 --> 00:02:20,250 lenge som de eksisterer innenfor ulike omfang. 42 00:02:20,250 --> 00:02:24,950 Og husker at omfanget er definert av klammeparentes som best 43 00:02:24,950 --> 00:02:27,620 omgir variabel at du har definert. 44 00:02:27,620 --> 00:02:30,370 >> La oss nå samle og kjøre dette programmet. 45 00:02:30,370 --> 00:02:35,210 Gjør funksjoner 1, prikk slash funksjoner en. 46 00:02:35,210 --> 00:02:40,040 La oss gi det en positiv int-lignende 50, og det sier takk for 50. 47 00:02:40,040 --> 00:02:43,180 I mellomtiden, hvis vi ikke samarbeider, kjøre programmet på nytt, gir det 48 00:02:43,180 --> 00:02:47,550 0, jeg spurt igjen, eller gi det negativ en, jeg spurt igjen. 49 00:02:47,550 --> 00:02:51,720 Men hvis jeg samarbeider gi det med, si, 50, jeg takket for den 50. 50 00:02:51,720 --> 00:02:54,590