1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> SPEAKER: Să pună în aplicare un program care solicită utilizatorului un întreg 3 00:00:03,230 --> 00:00:05,850 dar continuă determinându-le pentru un alt număr întreg până 4 00:00:05,850 --> 00:00:07,590 ca întreg este pozitiv. 5 00:00:07,590 --> 00:00:16,760 Ei bine, hai să scrie acest lucru, includ cs50.h, includ standardul IO punct h, int 6 00:00:16,760 --> 00:00:18,010 principal [gol]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Acum, haideți să începem de fapt, pentru a solicita de utilizator pentru acest întreg păstrând în același timp în 9 00:00:23,200 --> 00:00:25,570 contează că vrem să reprompt le până la care 10 00:00:25,570 --> 00:00:26,860 număr este, de fapt pozitiv. 11 00:00:26,860 --> 00:00:30,160 >> Deci, voi dori un fel de looping construi, dar o buclă care execută la 12 00:00:30,160 --> 00:00:31,200 puțin o dată. 13 00:00:31,200 --> 00:00:34,810 Și amintesc bucla do-în timp ce permite ne să facem exact acest lucru. 14 00:00:34,810 --> 00:00:36,140 Să codul asta. 15 00:00:36,140 --> 00:00:39,210 >> Să declare în primul rând un int - vom numesc n - în care pentru a stoca 16 00:00:39,210 --> 00:00:41,030 întreg utilizatorului. 17 00:00:41,030 --> 00:00:44,250 Hai acum facem următoarele. 18 00:00:44,250 --> 00:00:51,292 Printf, te rog da-mi un int pozitiv. 19 00:00:51,292 --> 00:00:54,470 Să te acum că int folosind getint bibliotecii CS50 lui 20 00:00:54,470 --> 00:00:59,110 funcție, n devine getint. 21 00:00:59,110 --> 00:01:02,610 Și acum am terminat de a face ceva, dar am de gând să doriți să faceți acest lucru 22 00:01:02,610 --> 00:01:04,580 în timp ce n este - 23 00:01:04,580 --> 00:01:05,480 ce? - 24 00:01:05,480 --> 00:01:09,370 mai puțin de 1, dacă într-adevăr Vreau un întreg pozitiv. 25 00:01:09,370 --> 00:01:11,670 >> Să mergem mai departe acum și imprima. 26 00:01:11,670 --> 00:01:17,590 Dacă totul este bine, mulțumesc pentru int pozitiv, 27 00:01:17,590 --> 00:01:19,360 punct și virgulă, salvați fișierul. 28 00:01:19,360 --> 00:01:21,480 Hai acum compila și rula. 29 00:01:21,480 --> 00:01:25,550 >> Face slash punct pozitiv pozitiv. 30 00:01:25,550 --> 00:01:27,470 Și acum sunt în curs de determinat pentru o int pozitiv. 31 00:01:27,470 --> 00:01:29,630 Permiteți-mi să coopereze cu 1. 32 00:01:29,630 --> 00:01:31,330 Multumesc pentru int pozitiv. 33 00:01:31,330 --> 00:01:33,650 >> Hai acum rulați din nou acest program de și nu cooperează. 34 00:01:33,650 --> 00:01:35,260 Vă rog să-mi un int pozitiv. 35 00:01:35,260 --> 00:01:37,300 Ce zici de negativ 1? 36 00:01:37,300 --> 00:01:37,910 Interesant. 37 00:01:37,910 --> 00:01:40,460 Programul este deja reprompted mă pentru un int. 38 00:01:40,460 --> 00:01:43,170 >> Să fim puțin mai mult greu cu 0. 39 00:01:43,170 --> 00:01:46,310 Încă nu o int pozitiv, asa ca hai sa coopera și de această dată 40 00:01:46,310 --> 00:01:48,280 oferi, din nou, 1. 41 00:01:48,280 --> 00:01:49,990 Multumesc pentru int pozitiv. 42 00:01:49,990 --> 00:01:54,300 >> Acum este important să rețineți că eu a declarat n mea variabil pe linia 6, 43 00:01:54,300 --> 00:01:56,510 în afara buclei do-timp. 44 00:01:56,510 --> 00:02:01,030 Dacă aș fi declarat în loc n interiorul meu do-în timp ce bucla, în special în, să zicem, 45 00:02:01,030 --> 00:02:06,230 linia 10, în cazul în care I a lua, de asemenea, int de la utilizator, care int n-ar avea decât 46 00:02:06,230 --> 00:02:09,904 a existat în limitele cret bretele, care sunt în prezent pe 47 00:02:09,904 --> 00:02:12,320 linia 8 și pe linia 11. 48 00:02:12,320 --> 00:02:16,570 >> Cu alte cuvinte, n-ar fi luneta la interiorul buclei do-timp. 49 00:02:16,570 --> 00:02:20,390 Dar problema este că noi, de asemenea, doriți să utilizați n în linia 12 50 00:02:20,390 --> 00:02:21,900 interiorul condiției. 51 00:02:21,900 --> 00:02:26,120 Deci, chiar dacă ea nu arata asa destul de, este foarte mult în mod deliberat că 52 00:02:26,120 --> 00:02:28,210 n este declarat în afara această buclă do-timp. 53 00:02:28,210 --> 00:02:29,838