>> SPEAKER: La oss gjennomføre et program som ber brukeren om et heltall
men fortsetter å spørre dem for et annet heltall før
som heltall er positiv.
Vel, la oss skrive dette, inkluderer cs50.h, Utover standard io dot h, int
Hoved [void].
La oss nå faktisk begynner å spørre brukeren for denne heltall mens du holder i
tankene at vi ønsker å reprompt dem inntil den
Tallet er faktisk positiv.
>> Så jeg ønsker noen form for looping konstruere, men en løkke som utfører på
minst en gang.
Og husker do-while-loop tillater oss til å gjøre akkurat det.
La oss kode dette opp.
>> La oss først erklære en int - vi vil kaller det n - der du vil lagre den
brukerens heltall.
La oss nå gjøre følgende.
Printf, vennligst gi meg en positiv int.
La oss nå få det int hjelp den CS50 bibliotekets GetInt
funksjon, n får GetInt.
Og nå er vi ferdige å gjøre noe, men vi kommer til å ønske å gjøre dette
mens n er -
hva? -
mindre enn 1, hvis vi faktisk ønsker et positivt heltall.
>> La oss gå videre nå og skrive ut.
Hvis alt er bra, takk for den positive int,
semikolon, lagre filen.
La oss nå kompilere og kjøre.
>> Gjør positive dot slash positive.
Og nå er jeg blir bedt om for en positiv int.
La meg samarbeide med en.
Takk for den positive int.
>> La oss nå kjøre dette programmet og ikke samarbeide.
Vennligst gi meg en positiv int.
Hva med negative 1?
Interessant.
Programmet er allerede reprompted meg for en int.
>> La oss være litt mer vanskelig med 0.
Fortsatt ikke en positiv int, så la oss samarbeide, og denne gangen
gi, igjen, en.
Takk for den positive int.
>> Nå er det viktig å merke seg at jeg erklærte min variabel n på linje 6,
utsiden av do-while-løkke.
Hadde jeg i stedet erklærte n innsiden av min gjør-mens loop, spesielt på, sier,
linje 10, hvor jeg får også int fra brukeren, ville det int n har bare
eksistert innenfor rammen av den krøllete bukseseler som er på
linje 8 og on line 11.
>> Med andre ord, ville n bli omfangs til innsiden av at do-while-løkke.
Men problemet er at vi også ønsker å bruke n på linje 12
innsiden av tilstanden.
Så selv om det ikke ser så pen, det er veldig mye bevisst at
n er deklarert utenfor dette do-while-loop.