1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> Tagapagsalita: ipatupad ng isang programa Hayaan na prompt ang user para sa isang integer 3 00:00:03,230 --> 00:00:05,850 ngunit patuloy pagdikta sa kanila para sa isa pang integer hanggang 4 00:00:05,850 --> 00:00:07,590 na integer ay positibo. 5 00:00:07,590 --> 00:00:16,760 Well, ni isulat ito ipaalam, isama cs50.h, ng pamantayang IO tuldok h, int 6 00:00:16,760 --> 00:00:18,010 pangunahing [walang bisa]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Ngayon ay talagang simulan upang i-prompt hayaan ang gumagamit para sa integer habang pinapanatiling sa 9 00:00:23,200 --> 00:00:25,570 bale na gusto naming reprompt ang mga ito hanggang sa na 10 00:00:25,570 --> 00:00:26,860 bilang na ito ay aktwal na positibo. 11 00:00:26,860 --> 00:00:30,160 >> Kaya makikita gusto ko ang ilan uri ng looping bumuo, ngunit isang loop na executes sa 12 00:00:30,160 --> 00:00:31,200 hindi bababa sa isang beses. 13 00:00:31,200 --> 00:00:34,810 At isipin ang do-loop habang nagbibigay-daan sa amin upang gawin eksakto na. 14 00:00:34,810 --> 00:00:36,140 Sabihin code na ito up. 15 00:00:36,140 --> 00:00:39,210 >> Ng unang magpahayag ng isang int Hayaan - kami ay tumawag ito n - kung saan upang i-imbak ang 16 00:00:39,210 --> 00:00:41,030 integer gumagamit. 17 00:00:41,030 --> 00:00:44,250 Sabihin ngayon gawin ang sumusunod. 18 00:00:44,250 --> 00:00:51,292 Printf, mangyaring magbigay sa akin ng isang positibong int. 19 00:00:51,292 --> 00:00:54,470 Sabihin ngayon makakuha na int paggamit GetInt ang CS50 library 20 00:00:54,470 --> 00:00:59,110 function, n nakakakuha GetInt. 21 00:00:59,110 --> 00:01:02,610 At ngayon tapos na kami paggawa ng isang bagay, ngunit kami ay pagpunta sa nais na gawin ito 22 00:01:02,610 --> 00:01:04,580 habang n ay - 23 00:01:04,580 --> 00:01:05,480 kung ano? - 24 00:01:05,480 --> 00:01:09,370 Mababa sa 1, kung kami talaga Gusto ng isang positibong integer. 25 00:01:09,370 --> 00:01:11,670 >> Sabihin sige ngayon at mag-print out. 26 00:01:11,670 --> 00:01:17,590 Kung ang lahat ay mahusay, salamat para sa positibong int, 27 00:01:17,590 --> 00:01:19,360 tuldok-kuwit, i-save ang file. 28 00:01:19,360 --> 00:01:21,480 Ni ngayon compile at patakbuhin Hayaan. 29 00:01:21,480 --> 00:01:25,550 >> Gawing positibo na tuldok na slash positibo. 30 00:01:25,550 --> 00:01:27,470 At ngayon ako ini-prompt para sa isang positibong int. 31 00:01:27,470 --> 00:01:29,630 Hayaan akong makipagtulungan na may 1. 32 00:01:29,630 --> 00:01:31,330 Salamat para sa positibong int. 33 00:01:31,330 --> 00:01:33,650 >> Ngayon muling patakbuhin ang program na ito sa Hayaan at hindi makikipagtulungan. 34 00:01:33,650 --> 00:01:35,260 Pakibigyan ako ng isang positibong int. 35 00:01:35,260 --> 00:01:37,300 Paano tungkol sa mga negatibong 1? 36 00:01:37,300 --> 00:01:37,910 Kawili-wili. 37 00:01:37,910 --> 00:01:40,460 Programa ay nai-reprompted sa akin para sa isang int. 38 00:01:40,460 --> 00:01:43,170 >> Maging bahagyang higit pa Hayaan mahirap na may 0. 39 00:01:43,170 --> 00:01:46,310 Hindi pa rin ng isang positibong int, kaya sabihin makikipagtulungan at oras na ito 40 00:01:46,310 --> 00:01:48,280 magbigay ng, muli, 1. 41 00:01:48,280 --> 00:01:49,990 Salamat para sa positibong int. 42 00:01:49,990 --> 00:01:54,300 >> Ngayon ay Mahalaga na tandaan na ako ipinahayag ang aking mga variable n sa 6 linya, 43 00:01:54,300 --> 00:01:56,510 sa labas ng do-loop habang. 44 00:01:56,510 --> 00:02:01,030 Ay ko sa halip ipinahayag n sa loob ng aking gawin-habang loop, partikular sa, sabihin nating, 45 00:02:01,030 --> 00:02:06,230 linya 10, kung saan ako makakakuha din ang int mula sa ang gumagamit, na int n ay magkakaroon lamang 46 00:02:06,230 --> 00:02:09,904 umiral sa loob ng paligid ng mga kulot tirante na kasalukuyang nasa 47 00:02:09,904 --> 00:02:12,320 linya ng 8 at sa linya 11. 48 00:02:12,320 --> 00:02:16,570 >> Sa madaling salita, n ay scoped sa ang loob ng na do-loop habang. 49 00:02:16,570 --> 00:02:20,390 Ngunit ang problema ay na namin din nais na gumamit ng n sa 12 na linya 50 00:02:20,390 --> 00:02:21,900 sa loob ng kondisyon. 51 00:02:21,900 --> 00:02:26,120 Kaya kahit na ito mukhang hindi kaya medyo, ito ay napaka sinadya na 52 00:02:26,120 --> 00:02:28,210 n ay ipinahayag sa labas ito do-loop habang. 53 00:02:28,210 --> 00:02:29,838