1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> SPEAKER: Katsotaanpa toteuttaa ohjelma, joka kysyy käyttäjältä kokonaisluvun 3 00:00:03,230 --> 00:00:05,850 mutta jatkuu kehottaa heitä toisen kokonaisluku asti 4 00:00:05,850 --> 00:00:07,590 että kokonaisluku on positiivinen. 5 00:00:07,590 --> 00:00:16,760 No, nyt kirjoitan tätä, kuuluvat cs50.h, ovat standardin io dot h, int 6 00:00:16,760 --> 00:00:18,010 Tärkein [void]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Nyt todella alkaa kysymään Käyttäjä tämän kokonaisluku pitäen 9 00:00:23,200 --> 00:00:25,570 mielessä, että haluamme reprompt ne vasta, että 10 00:00:25,570 --> 00:00:26,860 määrä on todella positiivinen. 11 00:00:26,860 --> 00:00:30,160 >> Niin minä haluan jonkinlainen kiehkura rakentaa, mutta silmukka, joka suorittaa osoitteessa 12 00:00:30,160 --> 00:00:31,200 ainakin kerran. 13 00:00:31,200 --> 00:00:34,810 Ja muistaa do-while-silmukka sallii meitä tekemään juuri näin. 14 00:00:34,810 --> 00:00:36,140 Katsotaanpa koodata tähän asti. 15 00:00:36,140 --> 00:00:39,210 >> Katsotaanpa ensin julistaa int - me kutsuvat sitä n - säilytystä 16 00:00:39,210 --> 00:00:41,030 käyttäjän kokonaisluku. 17 00:00:41,030 --> 00:00:44,250 Katsotaanpa nyt tehdä seuraavaa. 18 00:00:44,250 --> 00:00:51,292 Printf, antakaa minulle positiivinen int. 19 00:00:51,292 --> 00:00:54,470 Katsotaanpa nyt saada, että int käyttäen CS50 kirjaston GetInt 20 00:00:54,470 --> 00:00:59,110 toiminto, n saa GetInt. 21 00:00:59,110 --> 00:01:02,610 Ja nyt olemme tehneet tekemässä jotain, mutta aiomme halua tehdä tätä 22 00:01:02,610 --> 00:01:04,580 kun n on - 23 00:01:04,580 --> 00:01:05,480 mitä? - 24 00:01:05,480 --> 00:01:09,370 alle 1, jos me todellakin haluavat positiivinen kokonaisluku. 25 00:01:09,370 --> 00:01:11,670 >> Mennään eteenpäin nyt ja tulostaa. 26 00:01:11,670 --> 00:01:17,590 Jos kaikki on hyvin, kiitos positiivisen int, 27 00:01:17,590 --> 00:01:19,360 puolipiste, tallenna tiedosto. 28 00:01:19,360 --> 00:01:21,480 Katsotaanpa nyt kääntää ja ajaa. 29 00:01:21,480 --> 00:01:25,550 >> Tee positiivinen dot slash positiivinen. 30 00:01:25,550 --> 00:01:27,470 Ja nyt olen kehotetta positiivisen int. 31 00:01:27,470 --> 00:01:29,630 Saanen yhteistyötä 1. 32 00:01:29,630 --> 00:01:31,330 Kiitos positiivinen int. 33 00:01:31,330 --> 00:01:33,650 >> Katsotaanpa nyt uusintana tämän ohjelman ja tee yhteistyötä. 34 00:01:33,650 --> 00:01:35,260 Antakaa minulle positiivinen int. 35 00:01:35,260 --> 00:01:37,300 Entä negatiivinen 1? 36 00:01:37,300 --> 00:01:37,910 Mielenkiintoinen. 37 00:01:37,910 --> 00:01:40,460 Ohjelma on jo reprompted minua int. 38 00:01:40,460 --> 00:01:43,170 >> Olkaamme hieman vaikeaa 0. 39 00:01:43,170 --> 00:01:46,310 Vielä ole positiivinen int, joten katsotaanpa yhteistyötä ja tällä kertaa 40 00:01:46,310 --> 00:01:48,280 ja kerro, jälleen, 1.. 41 00:01:48,280 --> 00:01:49,990 Kiitos positiivinen int. 42 00:01:49,990 --> 00:01:54,300 >> Nyt on tärkeää huomata, että I julisti minun muuttujan n rivillä 6, 43 00:01:54,300 --> 00:01:56,510 ulkopuolella do-while-silmukka. 44 00:01:56,510 --> 00:02:01,030 Olinko sijaan julisti n sisällä minun do-while-silmukka, nimenomaan vaikkapa 45 00:02:01,030 --> 00:02:06,230 linja 10, jossa saan myös int alkaen käyttäjälle, että int n olisi vain 46 00:02:06,230 --> 00:02:09,904 olemassa rajoissa kihara henkselit, jotka ovat tällä hetkellä 47 00:02:09,904 --> 00:02:12,320 linja 8 ja rivillä 11. 48 00:02:12,320 --> 00:02:16,570 >> Toisin sanoen, n tulisi scoped kohteeseen sisällä että do-while-silmukka. 49 00:02:16,570 --> 00:02:20,390 Mutta ongelma on, että myös haluat käyttää n linjassa 12 50 00:02:20,390 --> 00:02:21,900 sisällä kunnossa. 51 00:02:21,900 --> 00:02:26,120 Joten vaikka se ei näytä niin kaunis, se on hyvin paljon tahallista että 52 00:02:26,120 --> 00:02:28,210 n on julistettu ulkopuolella tämä do-while-silmukka. 53 00:02:28,210 --> 00:02:29,838