1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> SPEAKER: Lad os gennemføre et program, der beder brugeren om et heltal 3 00:00:03,230 --> 00:00:05,850 men fortsætter tilskynder dem for et andet heltal indtil 4 00:00:05,850 --> 00:00:07,590 at heltal er positiv. 5 00:00:07,590 --> 00:00:16,760 Nå, lad os skrive dette, omfatter cs50.h, omfatte standard io dot h, int 6 00:00:16,760 --> 00:00:18,010 main [tomrum]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Lad os nu rent faktisk begynder at bede bruger af denne heltal samtidig holde på 9 00:00:23,200 --> 00:00:25,570 imod, at vi ønsker at reprompt dem, indtil der 10 00:00:25,570 --> 00:00:26,860 Antallet er faktisk positive. 11 00:00:26,860 --> 00:00:30,160 >> Så jeg vil have en form for looping konstruere, men en løkke, der henretter på 12 00:00:30,160 --> 00:00:31,200 mindst én gang. 13 00:00:31,200 --> 00:00:34,810 Og husker gør-while-løkke giver os til at gøre netop dette. 14 00:00:34,810 --> 00:00:36,140 Lad os kode det op. 15 00:00:36,140 --> 00:00:39,210 >> Lad os først erklære en int - vi vil kalder det n - til at gemme den 16 00:00:39,210 --> 00:00:41,030 brugerens heltal. 17 00:00:41,030 --> 00:00:44,250 Lad os nu gøre følgende. 18 00:00:44,250 --> 00:00:51,292 Printf, bedes du give mig en positiv int. 19 00:00:51,292 --> 00:00:54,470 Lad os nu få det int hjælp Den CS50 bibliotekets GetInt 20 00:00:54,470 --> 00:00:59,110 funktion, n bliver GetInt. 21 00:00:59,110 --> 00:01:02,610 Og nu er vi færdig med at gøre noget, men vi vil ønsker at gøre dette 22 00:01:02,610 --> 00:01:04,580 mens n er - 23 00:01:04,580 --> 00:01:05,480 hvad? - 24 00:01:05,480 --> 00:01:09,370 mindre end 1, hvis vi virkelig ønsker et positivt heltal. 25 00:01:09,370 --> 00:01:11,670 >> Lad os gå videre nu og printe ud. 26 00:01:11,670 --> 00:01:17,590 Hvis alt er godt, tak for den positive int, 27 00:01:17,590 --> 00:01:19,360 semikolon, gemme filen. 28 00:01:19,360 --> 00:01:21,480 Lad os nu kompilere og køre. 29 00:01:21,480 --> 00:01:25,550 >> Gør positiv prik skråstreg positiv. 30 00:01:25,550 --> 00:01:27,470 Og nu er jeg ved at blive bedt om for en positiv int. 31 00:01:27,470 --> 00:01:29,630 Lad mig samarbejder med 1. 32 00:01:29,630 --> 00:01:31,330 Tak for den positive int. 33 00:01:31,330 --> 00:01:33,650 >> Lad os nu kør dette program og ikke samarbejder. 34 00:01:33,650 --> 00:01:35,260 Giv mig en positiv int. 35 00:01:35,260 --> 00:01:37,300 Hvordan omkring negativ 1? 36 00:01:37,300 --> 00:01:37,910 Interessant. 37 00:01:37,910 --> 00:01:40,460 Programmet er allerede reprompted mig for en int. 38 00:01:40,460 --> 00:01:43,170 >> Lad os være lidt mere vanskeligt med 0. 39 00:01:43,170 --> 00:01:46,310 Stadig ikke en positiv int, så lad os samarbejde og denne gang 40 00:01:46,310 --> 00:01:48,280 give igen, 1.. 41 00:01:48,280 --> 00:01:49,990 Tak for den positive int. 42 00:01:49,990 --> 00:01:54,300 >> Nu er det vigtigt at bemærke, at jeg erklæret min variabel n på linje 6, 43 00:01:54,300 --> 00:01:56,510 uden for gør-while-løkke. 44 00:01:56,510 --> 00:02:01,030 Havde jeg i stedet erklærede n inde i mit gør-while-løkke, specielt om, sige, 45 00:02:01,030 --> 00:02:06,230 linje 10, hvor jeg også får int fra brugeren, ville int n har kun 46 00:02:06,230 --> 00:02:09,904 eksisterede inden for rammerne af de krøllede seler, der er i øjeblikket på 47 00:02:09,904 --> 00:02:12,320 linje 8 og på linie 11. 48 00:02:12,320 --> 00:02:16,570 >> Med andre ord vil n være virkefelt til indersiden af ​​det do-while-løkke. 49 00:02:16,570 --> 00:02:20,390 Men problemet er, at vi også ønsker at bruge N i linje 12 50 00:02:20,390 --> 00:02:21,900 indersiden af ​​tilstanden. 51 00:02:21,900 --> 00:02:26,120 Så selvom det ikke ser så smuk, det er meget bevidst, at 52 00:02:26,120 --> 00:02:28,210 n er erklæret udenfor dette gør-while-løkke. 53 00:02:28,210 --> 00:02:29,838