1 00:00:00,000 --> 00:00:00,580 2 00:00:00,580 --> 00:00:02,950 >> DAVID J. MALAN: Lad os nu gennemføre en funktion, der ikke bare har en side 3 00:00:02,950 --> 00:00:05,920 effekt, men i stedet vender tilbage en returværdi. 4 00:00:05,920 --> 00:00:09,150 Specifikt, lad os gennemføre en funktion kaldet få positiv int hvis 5 00:00:09,150 --> 00:00:11,490 formål i livet er at gøre netop dette. 6 00:00:11,490 --> 00:00:14,500 Konkret vil jeg gerne bruge denne funktion som følger - 7 00:00:14,500 --> 00:00:18,770 int N får få positiv int. 8 00:00:18,770 --> 00:00:23,640 Og derefter udskrive f, tak til procent i som en 9 00:00:23,640 --> 00:00:26,490 pladsholder, komma, ende. 10 00:00:26,490 --> 00:00:29,030 >> Nu er selvfølgelig, få positiv int eksisterer ikke endnu. 11 00:00:29,030 --> 00:00:33,020 Så lad os lover at gennemføre det ved tilføjelse til toppen af ​​min fil en linje 12 00:00:33,020 --> 00:00:37,110 ligesom int signalerer, at denne funktion vil vende tilbage i int - 13 00:00:37,110 --> 00:00:39,110 få positiv int. 14 00:00:39,110 --> 00:00:43,000 Og lad os præcisere udtrykkeligt, at dette Funktionen vil ikke tage nogen input, og 15 00:00:43,000 --> 00:00:45,570 så argumenterne er ugyldige. 16 00:00:45,570 --> 00:00:49,500 Lad os nu i bunden af ​​min fil, simpelthen så at jeg kan holde hoved op toppen, 17 00:00:49,500 --> 00:00:52,220 rent faktisk at gennemføre eller definere denne funktion. 18 00:00:52,220 --> 00:00:55,120 >> Først starter vi med det samme underskrift, så at sige - 19 00:00:55,120 --> 00:00:59,140 int få positiv int tomrum. 20 00:00:59,140 --> 00:01:01,910 Og lad os nu implementere få positiv int som følger. 21 00:01:01,910 --> 00:01:05,410 Lad os erklære en int, også kaldet N, men Vi kunne kalde det næsten alt 22 00:01:05,410 --> 00:01:11,360 vi gerne vil, skal du gøre følgende, mens nogle betingelse er sand, og vi vil vende tilbage til 23 00:01:11,360 --> 00:01:13,030 denne betingelse om et øjeblik. 24 00:01:13,030 --> 00:01:20,800 Print f, bedes du give mig en positiv int, og lad os nu bruge Få int fra 25 00:01:20,800 --> 00:01:23,290 Den CS50 biblioteket faktisk få det int. 26 00:01:23,290 --> 00:01:28,210 >> Men i min tilstand, så lad os gøre det løkke, så længe N er mindre end 1. 27 00:01:28,210 --> 00:01:31,260 Med andre ord, så længe brugeren ikke samarbejder ved at give mig 28 00:01:31,260 --> 00:01:36,260 med en positiv int, lad mig re-prompt ham eller hende igen og igen og igen 29 00:01:36,260 --> 00:01:37,720 indtil han eller hun gør. 30 00:01:37,720 --> 00:01:40,360 Men jeg er ikke færdig endnu, for i slutningen af ​​denne funktion, jeg har brug for at 31 00:01:40,360 --> 00:01:42,210 faktisk gøre noget med det input. 32 00:01:42,210 --> 00:01:46,710 Og så jeg har tænkt mig at gå om at vende tilbage det med en linje som tilbagevenden ende 33 00:01:46,710 --> 00:01:52,850 semikolon og dermed vende tilbage en egentlig int til main der kaldte denne funktion. 34 00:01:52,850 --> 00:01:56,810 Nu er det værd at bemærke, at selvom få positive int afkast i int, er det 35 00:01:56,810 --> 00:02:00,470 sikkert fint for det at vende tilbage en positiv int specifikt. 36 00:02:00,470 --> 00:02:04,170 Der er ikke en særlig datatype for positivt heltal specifikt, så vi 37 00:02:04,170 --> 00:02:06,490 blot bruge den indbyggede "int". 38 00:02:06,490 --> 00:02:11,250 >> Nu tilbage på linje ni, bemærke, at jeg er udskrive N. Men N i denne linje 39 00:02:11,250 --> 00:02:13,970 hører til N, der er erklæret på linje otte. 40 00:02:13,970 --> 00:02:17,840 Så det viser sig, du kan absolut have variabler identisk navngivne så 41 00:02:17,840 --> 00:02:20,250 længe de eksisterer indenfor forskellige anvendelsesområder. 42 00:02:20,250 --> 00:02:24,950 Og huske, at omfanget er defineret af de krøllede parenteser, der bedst 43 00:02:24,950 --> 00:02:27,620 omgiver den variable at du har defineret. 44 00:02:27,620 --> 00:02:30,370 >> Lad os nu kompilere og køre dette program. 45 00:02:30,370 --> 00:02:35,210 Gør funktioner 1, prik skråstreg funktioner 1.. 46 00:02:35,210 --> 00:02:40,040 Lad os give det en positiv int-lignende 50, og det siger tak for 50 år. 47 00:02:40,040 --> 00:02:43,180 I mellemtiden, hvis vi ikke samarbejder, køre programmet igen, giver det 48 00:02:43,180 --> 00:02:47,550 0, jeg spurgt igen, eller giver det negativ 1, jeg bliver bedt om det igen. 49 00:02:47,550 --> 00:02:51,720 Men hvis jeg samarbejdede forsyne det med, sige, 50, jeg takkede for 50 år. 50 00:02:51,720 --> 00:02:54,590