1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> SPEAKER: Laten we een programma dat vraagt ​​de gebruiker om een ​​geheel getal 3 00:00:03,230 --> 00:00:05,850 maar blijft wordt gevraagd ze voor een geheel getal tot 4 00:00:05,850 --> 00:00:07,590 dat integer is positief. 5 00:00:07,590 --> 00:00:16,760 Nou, laten we dit schrijven, zijn onder cs50.h, zijn standaard io dot h, int 6 00:00:16,760 --> 00:00:18,010 main [nietig]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Laten we nu daadwerkelijk beginnen te vragen de gebruiker voor deze integer terwijl in 9 00:00:23,200 --> 00:00:25,570 erg dat we willen reprompt totdat dat 10 00:00:25,570 --> 00:00:26,860 nummer is eigenlijk positief. 11 00:00:26,860 --> 00:00:30,160 >> Dus ik zal een soort looping wilt construeren, maar een lus die wordt uitgevoerd op 12 00:00:30,160 --> 00:00:31,200 minste eenmaal. 13 00:00:31,200 --> 00:00:34,810 En herinneren aan de do-while-lus maakt ons om precies dat te doen. 14 00:00:34,810 --> 00:00:36,140 Laten we coderen deze omhoog. 15 00:00:36,140 --> 00:00:39,210 >> Laten we eerst declareren een int - we zullen noem het n - in te slaan de 16 00:00:39,210 --> 00:00:41,030 integer gebruiker. 17 00:00:41,030 --> 00:00:44,250 Laten we nu het volgende. 18 00:00:44,250 --> 00:00:51,292 Printf, geef me een positieve int. 19 00:00:51,292 --> 00:00:54,470 Laten we nu krijgen dat int gebruik getInt de CS50 bibliotheek 20 00:00:54,470 --> 00:00:59,110 functie, n krijgt getint. 21 00:00:59,110 --> 00:01:02,610 En nu zijn we klaar om iets te doen, maar we gaan dit wilt doen 22 00:01:02,610 --> 00:01:04,580 terwijl n - 23 00:01:04,580 --> 00:01:05,480 wat? - 24 00:01:05,480 --> 00:01:09,370 minder dan 1, wanneer we inderdaad willen een positief geheel getal. 25 00:01:09,370 --> 00:01:11,670 >> Laten we nu vooruit en uit te printen. 26 00:01:11,670 --> 00:01:17,590 Als alles goed is, dankzij voor de positieve int 27 00:01:17,590 --> 00:01:19,360 puntkomma, sla het bestand op. 28 00:01:19,360 --> 00:01:21,480 Laten we nu samen te stellen en uit te voeren. 29 00:01:21,480 --> 00:01:25,550 >> Maak positieve dot slash positief. 30 00:01:25,550 --> 00:01:27,470 En nu ik word gevraagd voor een positieve int. 31 00:01:27,470 --> 00:01:29,630 Laat me samen met 1. 32 00:01:29,630 --> 00:01:31,330 Bedankt voor de positieve int. 33 00:01:31,330 --> 00:01:33,650 >> Laten we nu opnieuw uitvoeren van dit programma en niet meewerken. 34 00:01:33,650 --> 00:01:35,260 Geef me een positieve int. 35 00:01:35,260 --> 00:01:37,300 Hoe zit het met negatieve 1? 36 00:01:37,300 --> 00:01:37,910 Interessant. 37 00:01:37,910 --> 00:01:40,460 Het programma is al reprompted me voor een int. 38 00:01:40,460 --> 00:01:43,170 >> Laten we iets meer moeilijk met 0. 39 00:01:43,170 --> 00:01:46,310 Nog steeds geen positieve int, dus laten we samenwerken en dit keer 40 00:01:46,310 --> 00:01:48,280 bieden, nogmaals, 1. 41 00:01:48,280 --> 00:01:49,990 Bedankt voor de positieve int. 42 00:01:49,990 --> 00:01:54,300 >> Nu is het belangrijk op te merken dat ik verklaarde mijn variabele n op lijn 6, 43 00:01:54,300 --> 00:01:56,510 buiten de do-while lus. 44 00:01:56,510 --> 00:02:01,030 Had ik in plaats daarvan verklaarde n binnenkant van mijn do-while-lus, in het bijzonder op, zeg, 45 00:02:01,030 --> 00:02:06,230 lijn 10, waar ik ook de int uit de gebruiker, zou dat int n slechts 46 00:02:06,230 --> 00:02:09,904 bestond binnen de grenzen van de curly beugels die zijn momenteel op 47 00:02:09,904 --> 00:02:12,320 lijn 8 en lijn 11. 48 00:02:12,320 --> 00:02:16,570 >> Met andere woorden, zou n worden binnen het bereik van de binnenkant van die do-while lus. 49 00:02:16,570 --> 00:02:20,390 Maar het probleem is dat wij ook wilt gebruiken n in lijn 12 50 00:02:20,390 --> 00:02:21,900 binnenzijde van de aandoening. 51 00:02:21,900 --> 00:02:26,120 Dus hoewel het niet zo uitzien mooi, het is heel erg bewust dat 52 00:02:26,120 --> 00:02:28,210 n is buiten verklaard Deze do-while-lus. 53 00:02:28,210 --> 00:02:29,838