1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> SPEAKER: La oss gjennomføre et program som ber brukeren om et heltall 3 00:00:03,230 --> 00:00:05,850 men fortsetter å spørre dem for et annet heltall før 4 00:00:05,850 --> 00:00:07,590 som heltall er positiv. 5 00:00:07,590 --> 00:00:16,760 Vel, la oss skrive dette, inkluderer cs50.h, Utover standard io dot h, int 6 00:00:16,760 --> 00:00:18,010 Hoved [void]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 La oss nå faktisk begynner å spørre brukeren for denne heltall mens du holder i 9 00:00:23,200 --> 00:00:25,570 tankene at vi ønsker å reprompt dem inntil den 10 00:00:25,570 --> 00:00:26,860 Tallet er faktisk positiv. 11 00:00:26,860 --> 00:00:30,160 >> Så jeg ønsker noen form for looping konstruere, men en løkke som utfører på 12 00:00:30,160 --> 00:00:31,200 minst en gang. 13 00:00:31,200 --> 00:00:34,810 Og husker do-while-loop tillater oss til å gjøre akkurat det. 14 00:00:34,810 --> 00:00:36,140 La oss kode dette opp. 15 00:00:36,140 --> 00:00:39,210 >> La oss først erklære en int - vi vil kaller det n - der du vil lagre den 16 00:00:39,210 --> 00:00:41,030 brukerens heltall. 17 00:00:41,030 --> 00:00:44,250 La oss nå gjøre følgende. 18 00:00:44,250 --> 00:00:51,292 Printf, vennligst gi meg en positiv int. 19 00:00:51,292 --> 00:00:54,470 La oss nå få det int hjelp den CS50 bibliotekets GetInt 20 00:00:54,470 --> 00:00:59,110 funksjon, n får GetInt. 21 00:00:59,110 --> 00:01:02,610 Og nå er vi ferdige å gjøre noe, men vi kommer til å ønske å gjøre dette 22 00:01:02,610 --> 00:01:04,580 mens n er - 23 00:01:04,580 --> 00:01:05,480 hva? - 24 00:01:05,480 --> 00:01:09,370 mindre enn 1, hvis vi faktisk ønsker et positivt heltall. 25 00:01:09,370 --> 00:01:11,670 >> La oss gå videre nå og skrive ut. 26 00:01:11,670 --> 00:01:17,590 Hvis alt er bra, takk for den positive int, 27 00:01:17,590 --> 00:01:19,360 semikolon, lagre filen. 28 00:01:19,360 --> 00:01:21,480 La oss nå kompilere og kjøre. 29 00:01:21,480 --> 00:01:25,550 >> Gjør positive dot slash positive. 30 00:01:25,550 --> 00:01:27,470 Og nå er jeg blir bedt om for en positiv int. 31 00:01:27,470 --> 00:01:29,630 La meg samarbeide med en. 32 00:01:29,630 --> 00:01:31,330 Takk for den positive int. 33 00:01:31,330 --> 00:01:33,650 >> La oss nå kjøre dette programmet og ikke samarbeide. 34 00:01:33,650 --> 00:01:35,260 Vennligst gi meg en positiv int. 35 00:01:35,260 --> 00:01:37,300 Hva med negative 1? 36 00:01:37,300 --> 00:01:37,910 Interessant. 37 00:01:37,910 --> 00:01:40,460 Programmet er allerede reprompted meg for en int. 38 00:01:40,460 --> 00:01:43,170 >> La oss være litt mer vanskelig med 0. 39 00:01:43,170 --> 00:01:46,310 Fortsatt ikke en positiv int, så la oss samarbeide, og denne gangen 40 00:01:46,310 --> 00:01:48,280 gi, igjen, en. 41 00:01:48,280 --> 00:01:49,990 Takk for den positive int. 42 00:01:49,990 --> 00:01:54,300 >> Nå er det viktig å merke seg at jeg erklærte min variabel n på linje 6, 43 00:01:54,300 --> 00:01:56,510 utsiden av do-while-løkke. 44 00:01:56,510 --> 00:02:01,030 Hadde jeg i stedet erklærte n innsiden av min gjør-mens loop, spesielt på, sier, 45 00:02:01,030 --> 00:02:06,230 linje 10, hvor jeg får også int fra brukeren, ville det int n har bare 46 00:02:06,230 --> 00:02:09,904 eksistert innenfor rammen av den krøllete bukseseler som er på 47 00:02:09,904 --> 00:02:12,320 linje 8 og on line 11. 48 00:02:12,320 --> 00:02:16,570 >> Med andre ord, ville n bli omfangs til innsiden av at do-while-løkke. 49 00:02:16,570 --> 00:02:20,390 Men problemet er at vi også ønsker å bruke n på linje 12 50 00:02:20,390 --> 00:02:21,900 innsiden av tilstanden. 51 00:02:21,900 --> 00:02:26,120 Så selv om det ikke ser så pen, det er veldig mye bevisst at 52 00:02:26,120 --> 00:02:28,210 n er deklarert utenfor dette do-while-loop. 53 00:02:28,210 --> 00:02:29,838