1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> Ettekandja: Teeme rakendama programmi, mis küsib kasutajalt täisarv 3 00:00:03,230 --> 00:00:05,850 kuid jätkab sunnib neid teise täisarvu kuni 4 00:00:05,850 --> 00:00:07,590 et täisarv on positiivne. 5 00:00:07,590 --> 00:00:16,760 Noh, kirjutan seda, sisaldavad cs50.h, sisaldavad standard io dot h, int 6 00:00:16,760 --> 00:00:18,010 Peamised [kehtetu]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Nüüd tegelikult hakkavad küsima kasutaja selle täisarv, pidades samas 9 00:00:23,200 --> 00:00:25,570 pahanda, et me tahame reprompt neid kuni selle 10 00:00:25,570 --> 00:00:26,860 number on tegelikult positiivne. 11 00:00:26,860 --> 00:00:30,160 >> Nii et ma tahan mingi silmukoiminen ehitada, kuid loop, kus hukatakse kell 12 00:00:30,160 --> 00:00:31,200 vähemalt üks kord. 13 00:00:31,200 --> 00:00:34,810 Ja meenutada do-kui ahela võimaldab meil teha just nii. 14 00:00:34,810 --> 00:00:36,140 Olgem koodi selle üles. 15 00:00:36,140 --> 00:00:39,210 >> Vaatame kõigepealt deklareerima int - me kutsuda n - mille talletamiseks 16 00:00:39,210 --> 00:00:41,030 kasutaja täisarv. 17 00:00:41,030 --> 00:00:44,250 Olgem nüüd teha järgmist. 18 00:00:44,250 --> 00:00:51,292 Printf, palun anna mulle positiivse int. 19 00:00:51,292 --> 00:00:54,470 Lähme nüüd minema, et int kasutades CS50 raamatukogu GetInt 20 00:00:54,470 --> 00:00:59,110 funktsioon, n saab GetInt. 21 00:00:59,110 --> 00:01:02,610 Ja nüüd me oleme teinud midagi, kuid me tahame seda teha 22 00:01:02,610 --> 00:01:04,580 kui n on - 23 00:01:04,580 --> 00:01:05,480 mida? - 24 00:01:05,480 --> 00:01:09,370 vähem kui 1, kui me tõepoolest tahad positiivne täisarv. 25 00:01:09,370 --> 00:01:11,670 >> Lähme edasi nüüd ja välja printida. 26 00:01:11,670 --> 00:01:17,590 Kui kõik on hästi, tänan positiivse int, 27 00:01:17,590 --> 00:01:19,360 semikoolon, salvestage fail. 28 00:01:19,360 --> 00:01:21,480 Olgem nüüd kompileerida ja käivitada. 29 00:01:21,480 --> 00:01:25,550 >> Tee positiivset dot slash positiivne. 30 00:01:25,550 --> 00:01:27,470 Ja nüüd Mind ajendas positiivse int. 31 00:01:27,470 --> 00:01:29,630 Lubage mul teha koostööd 1. 32 00:01:29,630 --> 00:01:31,330 Täname positiivse int. 33 00:01:31,330 --> 00:01:33,650 >> Vaatame nüüd uuesti, see programm ja koostööd. 34 00:01:33,650 --> 00:01:35,260 Palun andke mulle positiivse int. 35 00:01:35,260 --> 00:01:37,300 Kuidas negatiivne 1? 36 00:01:37,300 --> 00:01:37,910 Huvitav. 37 00:01:37,910 --> 00:01:40,460 Programm on juba reprompted minu jaoks int. 38 00:01:40,460 --> 00:01:43,170 >> Olgem pisut raske koos 0. 39 00:01:43,170 --> 00:01:46,310 Ikka ei positiivne int, niiet koostööd ning seekord 40 00:01:46,310 --> 00:01:48,280 pakkuda jällegi 1. 41 00:01:48,280 --> 00:01:49,990 Täname positiivse int. 42 00:01:49,990 --> 00:01:54,300 >> Nüüd on oluline märkida, et I deklareeritud minu muutuja n real 6, 43 00:01:54,300 --> 00:01:56,510 väljaspool do-kui ahela. 44 00:01:56,510 --> 00:02:01,030 Kui ma selle asemel kuulutatud n sees minu do-kui ahela, konkreetselt, ütleme, 45 00:02:01,030 --> 00:02:06,230 line 10 kui ka mina saan int alates kasutaja, et int n oleks ainult 46 00:02:06,230 --> 00:02:09,904 eksisteerinud piirides lokkis traksid, mis on praegu 47 00:02:09,904 --> 00:02:12,320 line 8 ja real 11. 48 00:02:12,320 --> 00:02:16,570 >> Teisisõnu, n oleks scoped kuni sees, et do-kui ahela. 49 00:02:16,570 --> 00:02:20,390 Probleem on aga selles, et meil on ka soovite kasutada n in line 12 50 00:02:20,390 --> 00:02:21,900 sees tingimus. 51 00:02:21,900 --> 00:02:26,120 Nii et kuigi see ei ole nii ilus, see on väga tahtlik et 52 00:02:26,120 --> 00:02:28,210 n on deklareeritud väljaspool see do-kui ahela. 53 00:02:28,210 --> 00:02:29,838