DAVID J. MALAN: Låt oss nu genomföra en funktion som inte bara har en sida effekt, men i stället åter ett returvärde. Specifikt ska vi genomföra en funktion kallas få positiv int vars syfte i livet är att göra just detta. Specifikt, jag vill använda denna funktion så här - int N får bli positiv int. Och sedan skriva ut f, tack för procent i som en platshållare, kommatecken, slut. Nu naturligtvis, få positiv int ännu inte existerar. Så låt oss lova att genomföra den genom tillsats till den övre delen av min fil en linje som int betyda att denna funktion kommer tillbaka i int - få positiv int. Och låt oss anger uttryckligen att detta Funktionen kommer inte att ta någon ingång, och så argumenten är ogiltiga. Låt oss nu i botten av min fil, helt enkelt så att jag kan hålla på där uppe, faktiskt genomför eller definiera denna funktion. Först börjar vi med samma signatur, så att säga - int få positiv int tomrum. Och nu ska vi genomföra få positiv int enligt följande. Låt oss förklara en int, även kallad N men Vi kan kalla det vad som helst vi skulle vilja, gör följande medan vissa villkoret är sant, och vi ska återkomma till detta villkor i ett ögonblick. Utskrifts f, ge mig en positiv int, och nu ska vi använda Get int från den CS50 biblioteket för att faktiskt få det int. Men i mitt tillstånd, låt oss göra detta slinga så länge som N är mindre än 1. Med andra ord, så länge som användaren inte samarbetar genom att ge mig med en positiv int, låt mig åter prompt honom eller henne igen och igen, och igen tills han eller hon gör. Men jag är ännu inte gjort, eftersom det vid den slutet av denna funktion jag behöver faktiskt göra något med den ingången. Och så ska jag gå om återvänder den med en rad som retur slut semikolon, och därigenom åter en verklig int till huvud som kallade den här funktionen. Nu är det värt att notera att även om få positiva int avkastning i int, det är säkert bra för den att återvända en positiv int specifikt. Det finns inte en speciell datatyp för positivt heltal bestämt så vi helt enkelt använda den inbyggda "int." Nu tillbaka på linje nio, märker att jag är skriva ut N. Men N i denna linje tillhör den N som är deklarerat i linje åtta. Så det visar sig att du kan absolut ha variabler med samma namn så länge de finns inom olika omfattningar. Och minns att omfattningen definieras av klammerparenteserna som närmast omger den rörliga som du har definierat. Nu ska vi sammanställa och köra programmet. Gör funktioner 1, punkt slash funktioner 1. Låt oss ge det en positiv int-liknande 50, och det står tack för 50. Under tiden, om vi inte samarbetar, kör programmet igen, vilket ger 0, jag tillfrågad igen, eller ge den -1, jag tillfrågad igen. Men om jag samarbetar förse den med, säga, 50, jag tackade för den 50.