1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> Spreker: Kom ons implementeer 'n program wat vra die gebruiker om 'n heelgetal 3 00:00:03,230 --> 00:00:05,850 maar gaan voort om te vra om hulle vir 'n ander heelgetal tot 4 00:00:05,850 --> 00:00:07,590 dat heelgetal is positief. 5 00:00:07,590 --> 00:00:16,760 Wel, laat ons hier skryf, sluit cs50.h, sluit in standaard io dot h, int 6 00:00:16,760 --> 00:00:18,010 hoof [leemte]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Nou laat eintlik begin om te vra of die gebruiker vir hierdie heelgetal terwyl in 9 00:00:23,200 --> 00:00:25,570 gedagte dat ons wil reprompt hulle tot op daardie 10 00:00:25,570 --> 00:00:26,860 getal is eintlik positief. 11 00:00:26,860 --> 00:00:30,160 >> So ek sal 'n soort van herhaling wil bou, maar 'n lus wat voer op 12 00:00:30,160 --> 00:00:31,200 minste een keer. 13 00:00:31,200 --> 00:00:34,810 En onthou die do-while lus kan ons te doen presies dit. 14 00:00:34,810 --> 00:00:36,140 Kom ons kode Hierdie up. 15 00:00:36,140 --> 00:00:39,210 >> Kom ons kyk eers verklaar 'n int - ons sal noem dit n - in te slaan die 16 00:00:39,210 --> 00:00:41,030 gebruiker se integriteit. 17 00:00:41,030 --> 00:00:44,250 Kom ons doen nou die volgende. 18 00:00:44,250 --> 00:00:51,292 Printf, gee my asseblief 'n positiewe int. 19 00:00:51,292 --> 00:00:54,470 Kom ons kry nou dat int gebruik die CS50 biblioteek se getint 20 00:00:54,470 --> 00:00:59,110 funksie, n kry getint. 21 00:00:59,110 --> 00:01:02,610 En nou is ons klaar is om iets te doen, maar ons gaan om te wil om dit te doen 22 00:01:02,610 --> 00:01:04,580 terwyl N - 23 00:01:04,580 --> 00:01:05,480 wat? - 24 00:01:05,480 --> 00:01:09,370 minder as 1, as ons inderdaad wil 'n positiewe heelgetal. 25 00:01:09,370 --> 00:01:11,670 >> Kom ons gaan voort en nou uit te druk. 26 00:01:11,670 --> 00:01:17,590 As alles goed gaan, danksy vir die positiewe int, 27 00:01:17,590 --> 00:01:19,360 kommapunt, stoor die lêer. 28 00:01:19,360 --> 00:01:21,480 Kom ons nou saam te stel en uit te voer. 29 00:01:21,480 --> 00:01:25,550 >> Maak positiewe dot streep positief. 30 00:01:25,550 --> 00:01:27,470 En nou word ek gevra vir 'n positiewe int. 31 00:01:27,470 --> 00:01:29,630 Laat my saam met 1. 32 00:01:29,630 --> 00:01:31,330 Dankie vir die positiewe int. 33 00:01:31,330 --> 00:01:33,650 >> Kom ons kyk nou tik hierdie program en nie saam te werk. 34 00:01:33,650 --> 00:01:35,260 Gee asseblief vir my 'n positiewe int. 35 00:01:35,260 --> 00:01:37,300 Hoe oor die negatiewe 1? 36 00:01:37,300 --> 00:01:37,910 Interessant. 37 00:01:37,910 --> 00:01:40,460 Die program is reeds reprompted my vir 'n int. 38 00:01:40,460 --> 00:01:43,170 >> Kom ons 'n bietjie meer moeilik om met 0. 39 00:01:43,170 --> 00:01:46,310 Nog nie 'n positiewe int, so laat saam te werk en hierdie tyd 40 00:01:46,310 --> 00:01:48,280 verskaf, weer, 1. 41 00:01:48,280 --> 00:01:49,990 Dankie vir die positiewe int. 42 00:01:49,990 --> 00:01:54,300 >> Nou is dit belangrik om daarop te let dat ek verklaar my veranderlike n on line 6, 43 00:01:54,300 --> 00:01:56,510 buite die do-while lus. 44 00:01:56,510 --> 00:02:01,030 As ek in plaas verklaar n binnekant van my do-while lus, spesifiek op, sê, 45 00:02:01,030 --> 00:02:06,230 lyn 10, waar ek kry ook die int uit die gebruiker, sal dit int n net 46 00:02:06,230 --> 00:02:09,904 bestaan ​​binne die grense van die krullerige draadjies wat tans op 47 00:02:09,904 --> 00:02:12,320 reël 8 en op die lyn 11. 48 00:02:12,320 --> 00:02:16,570 >> Met ander woorde, sou n scoped word die binnekant van die do-while lus. 49 00:02:16,570 --> 00:02:20,390 Maar die probleem is dat ons ook wil n in lyn 12 te gebruik 50 00:02:20,390 --> 00:02:21,900 binnekant van die toestand. 51 00:02:21,900 --> 00:02:26,120 So selfs al is dit nie so lyk mooi, dit is baie doelbewuste wat 52 00:02:26,120 --> 00:02:28,210 n buite verklaar hierdie do-while lus. 53 00:02:28,210 --> 00:02:29,838