1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> SPEAKER: Pieņemsim īstenot programmu, kas liek lietotājam, lai veselam skaitlim 3 00:00:03,230 --> 00:00:05,850 bet turpina pamudinot viņus citam skaitlim līdz 4 00:00:05,850 --> 00:00:07,590 ka skaitlis ir pozitīvs. 5 00:00:07,590 --> 00:00:16,760 Nu, pieņemsim rakstu šo rakstu, ietver cs50.h, ietver standarta io dot h, int 6 00:00:16,760 --> 00:00:18,010 Galvenais [spēkā neesošu]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Tagad faktiski sāk ātri lietotājs šim skaitlim, vienlaikus paturot 9 00:00:23,200 --> 00:00:25,570 nekas, ka mēs vēlamies, lai reprompt viņiem līdz, ka 10 00:00:25,570 --> 00:00:26,860 numurs ir faktiski pozitīva. 11 00:00:26,860 --> 00:00:30,160 >> Tāpēc es gribu kādu looping būvēt, bet cilpa, kas izpilda pie 12 00:00:30,160 --> 00:00:31,200 Vismaz vienu reizi. 13 00:00:31,200 --> 00:00:34,810 Un atcerēties do-kamēr cilpa ļauj mums darīt tieši to. 14 00:00:34,810 --> 00:00:36,140 Pieņemsim kodu šo augšu. 15 00:00:36,140 --> 00:00:39,210 >> Pieņemsim vispirms paziņot, int - mēs to sauc par n - kur glabāt 16 00:00:39,210 --> 00:00:41,030 lietotāja skaitlim. 17 00:00:41,030 --> 00:00:44,250 Pieņemsim tagad darīt šādi. 18 00:00:44,250 --> 00:00:51,292 Printf, lūdzu, iedodiet man pozitīvu int. 19 00:00:51,292 --> 00:00:54,470 Pieņemsim tagad iegūtu, ka int izmantojot Eiropas CS50 bibliotēkas GetInt 20 00:00:54,470 --> 00:00:59,110 funkcija, n izpaužas GetInt. 21 00:00:59,110 --> 00:01:02,610 Un tagad mēs esam darījuši kaut ko dara, bet mēs esam gatavojas vēlaties darīt, 22 00:01:02,610 --> 00:01:04,580 bet n ir - 23 00:01:04,580 --> 00:01:05,480 ko? - 24 00:01:05,480 --> 00:01:09,370 mazāks par 1, ja mēs patiešām vēlas pozitīvu skaitli. 25 00:01:09,370 --> 00:01:11,670 >> Iesim uz priekšu tagad un izdrukāt. 26 00:01:11,670 --> 00:01:17,590 Ja viss ir labi, paldies par pozitīvo int, 27 00:01:17,590 --> 00:01:19,360 semikols, saglabājiet failu. 28 00:01:19,360 --> 00:01:21,480 Pieņemsim tagad apkopot un palaist. 29 00:01:21,480 --> 00:01:25,550 >> Lai pozitīvi dot slash pozitīvs. 30 00:01:25,550 --> 00:01:27,470 Un tagad es esmu to pamudināja pozitīvu int. 31 00:01:27,470 --> 00:01:29,630 Ļaujiet man sadarboties ar 1. 32 00:01:29,630 --> 00:01:31,330 Paldies par pozitīvo int. 33 00:01:31,330 --> 00:01:33,650 >> Pieņemsim tagad atkārto šo programmu un nesadarbojas. 34 00:01:33,650 --> 00:01:35,260 Lūdzu, iedodiet man pozitīvu int. 35 00:01:35,260 --> 00:01:37,300 Kā par negatīvo 1? 36 00:01:37,300 --> 00:01:37,910 Interesanti. 37 00:01:37,910 --> 00:01:40,460 Programma jau reprompted man par int. 38 00:01:40,460 --> 00:01:43,170 >> Būsim nedaudz vairāk grūti ar 0. 39 00:01:43,170 --> 00:01:46,310 Joprojām nav pozitīva int, tāpēc pieņemsim sadarboties un šoreiz 40 00:01:46,310 --> 00:01:48,280 nodrošina, atkal, 1. 41 00:01:48,280 --> 00:01:49,990 Paldies par pozitīvo int. 42 00:01:49,990 --> 00:01:54,300 >> Tagad tas ir svarīgi atzīmēt, ka es pasludināja mans mainīgo n on line 6, 43 00:01:54,300 --> 00:01:56,510 ārpus do-kamēr cilpa. 44 00:01:56,510 --> 00:02:01,030 Es biju nevis deklarētā n iekšpusē manu do-kamēr cilpa, tieši uz, teiksim, 45 00:02:01,030 --> 00:02:06,230 līnija 10, kur es arī iegūt int no lietotājs, kas int n būtu tikai 46 00:02:06,230 --> 00:02:09,904 pastāvēja robežās no cirtaini breketes, kas pašlaik 47 00:02:09,904 --> 00:02:12,320 līnija 8, un tiešsaistē 11. 48 00:02:12,320 --> 00:02:16,570 >> Citiem vārdiem, n tiktu scoped līdz iekšpusē šo do-kamēr cilpa. 49 00:02:16,570 --> 00:02:20,390 Bet problēma ir tā, ka mums ir arī vēlaties izmantot n atbilst 12 50 00:02:20,390 --> 00:02:21,900 iekšpusē stāvoklī. 51 00:02:21,900 --> 00:02:26,120 Tātad, pat ja tas neizskatās tik diezgan, tas ir ļoti daudz, apzinātu, ka 52 00:02:26,120 --> 00:02:28,210 n ir deklarēta ārpus tas do-kamēr cilpa. 53 00:02:28,210 --> 00:02:29,838