>> SPEAKER: Laten we een programma dat vraagt ​​de gebruiker om een ​​geheel getal
maar blijft wordt gevraagd ze voor een geheel getal tot
dat integer is positief.
Nou, laten we dit schrijven, zijn onder cs50.h, zijn standaard io dot h, int
main [nietig].
Laten we nu daadwerkelijk beginnen te vragen de gebruiker voor deze integer terwijl in
erg dat we willen reprompt totdat dat
nummer is eigenlijk positief.
>> Dus ik zal een soort looping wilt construeren, maar een lus die wordt uitgevoerd op
minste eenmaal.
En herinneren aan de do-while-lus maakt ons om precies dat te doen.
Laten we coderen deze omhoog.
>> Laten we eerst declareren een int - we zullen noem het n - in te slaan de
integer gebruiker.
Laten we nu het volgende.
Printf, geef me een positieve int.
Laten we nu krijgen dat int gebruik getInt de CS50 bibliotheek
functie, n krijgt getint.
En nu zijn we klaar om iets te doen, maar we gaan dit wilt doen
terwijl n -
wat? -
minder dan 1, wanneer we inderdaad willen een positief geheel getal.
>> Laten we nu vooruit en uit te printen.
Als alles goed is, dankzij voor de positieve int
puntkomma, sla het bestand op.
Laten we nu samen te stellen en uit te voeren.
>> Maak positieve dot slash positief.
En nu ik word gevraagd voor een positieve int.
Laat me samen met 1.
Bedankt voor de positieve int.
>> Laten we nu opnieuw uitvoeren van dit programma en niet meewerken.
Geef me een positieve int.
Hoe zit het met negatieve 1?
Interessant.
Het programma is al reprompted me voor een int.
>> Laten we iets meer moeilijk met 0.
Nog steeds geen positieve int, dus laten we samenwerken en dit keer
bieden, nogmaals, 1.
Bedankt voor de positieve int.
>> Nu is het belangrijk op te merken dat ik verklaarde mijn variabele n op lijn 6,
buiten de do-while lus.
Had ik in plaats daarvan verklaarde n binnenkant van mijn do-while-lus, in het bijzonder op, zeg,
lijn 10, waar ik ook de int uit de gebruiker, zou dat int n slechts
bestond binnen de grenzen van de curly beugels die zijn momenteel op
lijn 8 en lijn 11.
>> Met andere woorden, zou n worden binnen het bereik van de binnenkant van die do-while lus.
Maar het probleem is dat wij ook wilt gebruiken n in lijn 12
binnenzijde van de aandoening.
Dus hoewel het niet zo uitzien mooi, het is heel erg bewust dat
n is buiten verklaard Deze do-while-lus.