Tagapagsalita: ipatupad ng isang programa Hayaan na prompt ang user para sa isang integer ngunit patuloy pagdikta sa kanila para sa isa pang integer hanggang na integer ay positibo. Well, ni isulat ito ipaalam, isama cs50.h, ng pamantayang IO tuldok h, int pangunahing [walang bisa]. Ngayon ay talagang simulan upang i-prompt hayaan ang gumagamit para sa integer habang pinapanatiling sa bale na gusto naming reprompt ang mga ito hanggang sa na bilang na ito ay aktwal na positibo. Kaya makikita gusto ko ang ilan uri ng looping bumuo, ngunit isang loop na executes sa hindi bababa sa isang beses. At isipin ang do-loop habang nagbibigay-daan sa amin upang gawin eksakto na. Sabihin code na ito up. Ng unang magpahayag ng isang int Hayaan - kami ay tumawag ito n - kung saan upang i-imbak ang integer gumagamit. Sabihin ngayon gawin ang sumusunod. Printf, mangyaring magbigay sa akin ng isang positibong int. Sabihin ngayon makakuha na int paggamit GetInt ang CS50 library function, n nakakakuha GetInt. At ngayon tapos na kami paggawa ng isang bagay, ngunit kami ay pagpunta sa nais na gawin ito habang n ay - kung ano? - Mababa sa 1, kung kami talaga Gusto ng isang positibong integer. Sabihin sige ngayon at mag-print out. Kung ang lahat ay mahusay, salamat para sa positibong int, tuldok-kuwit, i-save ang file. Ni ngayon compile at patakbuhin Hayaan. Gawing positibo na tuldok na slash positibo. At ngayon ako ini-prompt para sa isang positibong int. Hayaan akong makipagtulungan na may 1. Salamat para sa positibong int. Ngayon muling patakbuhin ang program na ito sa Hayaan at hindi makikipagtulungan. Pakibigyan ako ng isang positibong int. Paano tungkol sa mga negatibong 1? Kawili-wili. Programa ay nai-reprompted sa akin para sa isang int. Maging bahagyang higit pa Hayaan mahirap na may 0. Hindi pa rin ng isang positibong int, kaya sabihin makikipagtulungan at oras na ito magbigay ng, muli, 1. Salamat para sa positibong int. Ngayon ay Mahalaga na tandaan na ako ipinahayag ang aking mga variable n sa 6 linya, sa labas ng do-loop habang. Ay ko sa halip ipinahayag n sa loob ng aking gawin-habang loop, partikular sa, sabihin nating, linya 10, kung saan ako makakakuha din ang int mula sa ang gumagamit, na int n ay magkakaroon lamang umiral sa loob ng paligid ng mga kulot tirante na kasalukuyang nasa linya ng 8 at sa linya 11. Sa madaling salita, n ay scoped sa ang loob ng na do-loop habang. Ngunit ang problema ay na namin din nais na gumamit ng n sa 12 na linya sa loob ng kondisyon. Kaya kahit na ito mukhang hindi kaya medyo, ito ay napaka sinadya na n ay ipinahayag sa labas ito do-loop habang.