1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> GARSIAKALBIS: Leiskite įgyvendinti programą, kuri paragina sveikasis vartotoją 3 00:00:03,230 --> 00:00:05,850 bet toliau paskatino juos dar iki sveikojo skaičiaus 4 00:00:05,850 --> 00:00:07,590 kad sveikasis skaičius yra teigiamas. 5 00:00:07,590 --> 00:00:16,760 Na, galime rašyti tai apima cs50.h, įtraukti standartinę io taškas H, int 6 00:00:16,760 --> 00:00:18,010 Pagrindinis [tuščia]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Dabar galime iš tikrųjų pradeda greitai vartotojas už šį sveikojo skaičiaus, o turint 9 00:00:23,200 --> 00:00:25,570 omenyje, kad mes norime reprompt jiems iki tol, kol 10 00:00:25,570 --> 00:00:26,860 skaičius yra tikrai teigiamas. 11 00:00:26,860 --> 00:00:30,160 >> Taigi aš noriu kai ąselę natūra statyti, bet kilpa kad vykdo ne 12 00:00:30,160 --> 00:00:31,200 bent vieną kartą. 13 00:00:31,200 --> 00:00:34,810 Ir prisiminti, do-while cikle leidžia mums daryti būtent tai. 14 00:00:34,810 --> 00:00:36,140 Tegul kodas tai padaryti. 15 00:00:36,140 --> 00:00:39,210 >> Tegul pirmasis paskelbti int - mes jį vadiname n - kai saugoti 16 00:00:39,210 --> 00:00:41,030 vartotojo sveikasis skaičius. 17 00:00:41,030 --> 00:00:44,250 Tegul dabar padarom taip. 18 00:00:44,250 --> 00:00:51,292 Printf, prašome duoti man teigiamą int. 19 00:00:51,292 --> 00:00:54,470 Leiskite dabar gauti, kad int naudojant į CS50 bibliotekos GetInt 20 00:00:54,470 --> 00:00:59,110 funkcija, n gauna GetInt. 21 00:00:59,110 --> 00:01:02,610 Ir dabar mes padaryti kažką, bet mes ketiname norite tai padaryti 22 00:01:02,610 --> 00:01:04,580 o n - 23 00:01:04,580 --> 00:01:05,480 ką? - 24 00:01:05,480 --> 00:01:09,370 mažiau nei 1, jei mes iš tiesų noriu teigiamas sveikasis skaičius. 25 00:01:09,370 --> 00:01:11,670 >> Vykime į priekį dabar ir atsispausdinti. 26 00:01:11,670 --> 00:01:17,590 Jei viskas gerai, nes teigiamą, int, 27 00:01:17,590 --> 00:01:19,360 kabliataškis, išsaugokite failą. 28 00:01:19,360 --> 00:01:21,480 Leiskite dabar renka ir paleisti. 29 00:01:21,480 --> 00:01:25,550 >> Padaryti teigiamas taškų velniop teigiamas. 30 00:01:25,550 --> 00:01:27,470 Ir dabar aš neparagintas teigiamą int. 31 00:01:27,470 --> 00:01:29,630 Leiskite bendradarbiauti su 1. 32 00:01:29,630 --> 00:01:31,330 Ačiū už teigiamą tarpt. 33 00:01:31,330 --> 00:01:33,650 >> Leiskite dabar pakartotas šią programą ir nebendradarbiauja. 34 00:01:33,650 --> 00:01:35,260 Prašau duoti man teigiamą int. 35 00:01:35,260 --> 00:01:37,300 Kaip apie neigiamas 1? 36 00:01:37,300 --> 00:01:37,910 Įdomu. 37 00:01:37,910 --> 00:01:40,460 Programa jau reprompted man už int. 38 00:01:40,460 --> 00:01:43,170 >> Būkime šiek tiek daugiau sunku su 0. 39 00:01:43,170 --> 00:01:46,310 Dar ne teigiamas int, todėl galime bendradarbiauti ir šiuo metu 40 00:01:46,310 --> 00:01:48,280 vėl teikti,, 1. 41 00:01:48,280 --> 00:01:49,990 Ačiū už teigiamą tarpt. 42 00:01:49,990 --> 00:01:54,300 >> Dabar svarbu pažymėti, kad I paskelbė mano kintamasis n on line 6, 43 00:01:54,300 --> 00:01:56,510 ne do-while cikle. 44 00:01:56,510 --> 00:02:01,030 Jeigu aš vietoj paskelbė n viduje mano do-while cikle, konkrečiai, tarkim, 45 00:02:01,030 --> 00:02:06,230 10 eilutė, kurioje aš taip pat gauti int nuo vartotojas, kad int n tereikėtų 46 00:02:06,230 --> 00:02:09,904 egzistavo neviršijant garbanotus ribų petnešos, kurios šiuo metu 47 00:02:09,904 --> 00:02:12,320 8 linijos ir linijos 11. 48 00:02:12,320 --> 00:02:16,570 >> Kitaip tariant, n būtų scoped į to do-while cikle viduje. 49 00:02:16,570 --> 00:02:20,390 Bet problema yra ta, kad mes taip pat norite naudoti n atitinka 12 50 00:02:20,390 --> 00:02:21,900 viduje sąlyga. 51 00:02:21,900 --> 00:02:26,120 Taigi, nors ji neatrodo taip gana, tai labai apgalvotas, kad 52 00:02:26,120 --> 00:02:28,210 n yra paskelbta ne tai do-while cikle. 53 00:02:28,210 --> 00:02:29,838