>> داگ لوید: خوب، پس اجازه دهید در مورد حلقه صحبت کنید.
بنابراین حلقه ها نوع سرد چرا که آنها به برنامه
برای اجرای خط کد و بیش از بیش و بیش از.
بارها و بارها، بدون نیاز به کپی در غیر این صورت و چسباندن و یا آنها را تکرار کنید.
سه عمده وجود دارد انواع حلقه ها خواهید دید.
شما احتمالا مناسبت مجبور به استفاده از هر یک به عنوان شما را از طریق CS50 پیشرفت.
برخی از این حلقه ها بسیار آشنا به شما، از ابتدا،
تا دوباره، همانطور که ما با شرطی انجام داد، ما آنها را در کنار هم قرار داده تا
اگر یک مقایسه وجود دارد ما می توانیم قرعه کشی.
>> برای اولین بار برای همیشه، از ابتدا، که در مقایسه با در حالی که (درست).
این چیزی است که ما یک حلقه بی نهایت است.
خط کد بین اشکال مختلف پرانتز، بسیار شبیه به تکه های پازل
که مناسب داخل C از برای همیشه مسدود،
بارها و بارها از بالا اجرا خواهد شد به پایین، و بیش از بیش و بیش از،
برای همیشه.
پس از همه، اگر شما به خاطر ما بحث در مورد عبارات بولی،
درست است همیشه درست است.
بنابراین اگر ما در حال انجام چیزی تا زمانی که درست
است true-- به نظر می رسد کمی درست silly-- است که همیشه درست، به طوری که آن را همیشه اجرا کنید.
آن را برای همیشه از اجرا و همیشه و همیشه تا زمانی که ما
پیدا کردن یک راه برای گریز از آن را با بیانیه استراحت، که دوباره،
ما شاهد در حالی که کمی پیش ما در مورد سوئیچ صحبت می کردند.
>> در غیر این صورت و یا فقط کشتن ما برنامه، که در ضمن،
اگر شما تا به حال خود را در یک پیدا وضعیت با یک حلقه بی نهایت
و شما نمی دانید که چگونه برای متوقف کردن برنامه خود را از در حال اجرا.
فقط کنترل و C ضربه و است که به شما برنامه خود را برای شما بکشند.
اما این دوباره است، به نام یک حلقه بی نهایت.
این یک حلقه است که برای همیشه اجرا خواهد شد.
در حال حاضر، در حالی که حلقه نیست همیشه بی نهایت، به دلیل هم
ما می توانیم بولی جایگزین بیان با چیزی
کمی بیشتر مفید از درست است.
بنابراین در اینجا یک مثال دیگر.
در حالی که برخی بولی و بیان و پس از آن در اشکال مختلف پرانتز.
که تقریبا مشابه به تکرار تا زمانی، از ابتدا.
اگر چه در یک دوم، من توضیح تفاوت.
>> بنابراین در C، اگر عبارت بولی در داخل حلقه در حالی که
به true ارزیابی، خطوط کد بین آکولاد
و بیش از بیش بارها و بارها اجرا خواهد شد و بارها تا عبارت بولی
به false ارزیابی.
بنابراین برای مثال، شما ممکن است نوعی ضد.
بنابراین شما می گویند در آغاز این حلقه می گویند نوع int x برابر صفر است.
در حالی که X کمتر از 100 است، انجام چند همه چیز در داخل که آکولاد،
سپس در پایان حلقه خود را، به شما می گویند X به علاوه به علاوه، شما در حال افزایش x است.
در نهایت X خواهد شد تا 100 و شما
متوقف دلیل که شرایط X کمتر از 100 است
دیگر نمی خواهد به عنوان درست باشد به زودی به عنوان X تا 100 برابر است.
100 کمتر از 100.
>> در حال حاضر تا حدودی گمراه کننده، رفتار بلوک ابتدا معکوس شده است.
بنابراین واقعا مراقب باشید در صورتی که این اولین تاخت و تاز خود را به استفاده از حلقه.
در واقع، تکرار تا زمانی که بلوک در ابتدا
چیزی تکرار و بیش از بیش و بیش از،
تا زمانی که بیان، بولی بیان در شش گوش است.
پس از آن حفظ خواهد کرد انجام آن تا زمانی که درست است.
در همین حال، در حالی که حلقه خواهد شد ادامه به انجام آن تا زمانی که نادرست است.
به طوری که آنها کاملا مشابه است، اما که تمایز کمی فقط وجود دارد
مراقب باشید، به ویژه به عنوان شما را اولین تاخت و تاز خود را از انتقال
به خراش به C.
نوع بعدی از حلقه است در واقع بسیار مشابه است.
آن را به نام حالی که حلقه.
این حلقه تمام خطوط اجرا کد بین آکولاد یک بار،
و سپس آن را بررسی خواهد کرد بیان بولی.
اگر عبارت بولی به true ارزیابی،
آن را به عقب بروید و تکرار این روند و بیش از بیش
و بارها تا بولی عبارت مقدار false است.
بنابراین این حلقه، بر خلاف یک حلقه در حالی است تضمین برای اجرای حداقل یک زمان.
این می تواند بسیار مفید است.
>> در نهایت، ما یک حلقه for.
برای حلقه های از نوع نحوی غیرجذاب
و در بسیاری رفتن وجود دارد در اینجا، بنابراین خرس با من
همانطور که ما سعی و شکستن این قطعه از هم جدا.
به طور کلی، مورد استفاده از یک حلقه for است
می خواهم به تکرار چیزی تعداد خاصی از زمان.
در این مثال در اینجا، من بلوک تکرار
از ابتدا، است که شبیه به حلقه for
در C، تکرار چیزی 10 بار.
و حلقه for در در سمت چپ وجود دارد، که
چهار حلقه است که همان کار را انجام دهید.
این 10 بار است.
شمارش از صفر، ما افزایش هر پاس از حلقه است.
و ما را انجام می دهند که تا زمانی که من کمتر از 10 است.
>> پس چه اتفاقی می افتد؟
در خیلی چیزها از کد وجود دارد.
اجازه دهید آن را شکستن به آنچه اتفاق می افتد به گام
به گام به عنوان ما را از طریق یک حلقه for حفاری.
اولین چیزی که اتفاق افتاده است متغیر شمارنده مرکز است.
همه چیز را به سمت چپ که برای اولین بار نقطه و ویرگول داخل پرانتزها
اجرا شده است.
در این مورد، ما گفت INT من برابر با 0.
اعلام یک متغیر جدید به نام من، متغیرهای عدد صحیح که نوع
و ما در حال گفت ارزش در داخل که متغیر است برای رفتن به صفر است.
>> دومین چیزی که ما انجام می دهیم ما پس از آن بلافاصله ارزیابی
بیان بولی.
عبارت بولی است در وسط این دو سمی کالن.
من کمتر از 10 است.
این درست در اینجا، درست است؟
ما فقط گفت: من برابر است با صفر، و به همین ترتیب 0 کمتر از 10 است،
و به طوری که شرایط درست است و در حال حاضر ما
اقدام به اجرای بدنه حلقه.
اگر آن را نادرست بود.
اگر، برای مثال، من به جای گفت من برابر با 0 وجود دارد گفت: من برابر با 15،
اعضای هیات من برابر با 15.
خوب است 15 کمتر از 10 است، بنابراین ما هرگز بدنه حلقه را وارد کنید
به این دلیل که عبارت بولی وجود دارد ارزیابی نادرست است.
>> پس از ما از طریق رفتن از بالا به پایین، ما روبرو می شوند که آکولاد بسته،
یک چیز سوم اتفاق می افتد.
متغیر شمارنده واحد اضافه، یا نه، خطوط
کد یک بیانیه ای پس از نقطه و ویرگول دوم داخل
برای حلقه پرانتز اجرا شده است.
بنابراین ما شروع شده توسط گفت INT من برابر با 0.
پس از آن ما یا نه را بررسی کنید بیان بولی درست است.
0 کمتر از 10 پس از آن درست است.
بنابراین ما قصد داریم برای ادامه به بدن حلقه.
همه چیز در داخل حلقه رخ می دهد، و هنگامی که ما روبرو می شوند که در اشکال مختلف بسته شدن
بریس، چیزی که بعد از ما انجام دهید این است که ما می گویند من علاوه، به علاوه.
من صفر در حال حاضر من یکی است.
بعد دوباره به بررسی ارزش بیان بولی در وسط.
یکی کمتر از 10 است.
بنابراین ما از طریق این دوباره و دوباره روند.
ما به بسته شدن گرفتن آکولاد دوباره.
ما از افزایش 1-2 و 2-3.
و غیره و غیره و به همین ترتیب تا، در نهایت ارزش من 10 است.
است 10 کمتر از 10؟
شماره
شمارش از 0، ما رفته از طریق 10 تکرار از حلقه.
ما 10 بار تکرار، فقط همانطور که ما در بلوک خراش است.
و به طوری که اساسا فرآیند برای چهار حلقه.
>> در حال حاضر در نظر گرفتن دور کد واقعی و قرار دادن آن
فقط در برخی از اظهارات عمومی عمومی.
اینجا چیزی است که اتفاق می افتد.
همه اظهارات در شروع اولین بار اجرا می شود.
شما ممکن است بیش از یک است.
پس از آن، عبارت بولی بررسی می شود.
اگر عبارت true ارزیابی، اجرا بدن حلقه یک زمان.
اگر عبارت مقدار به غلط، ما در حال انجام.
ما اجرا نمی بدنه حلقه در همه.
بعد از ما را اعدام کرده ام بدن حلقه یک زمان،
ما پس از آن چه در بخش افزایش وجود دارد.
که معمولا برای رفتن به چیزی مثل من علاوه، به علاوه
و یا چیزی مانند آن، که تغییر یک متغیر شمارنده.
سپس، پس از افزایش می کنیم، ما دوباره بیان را بررسی کنید
و تکرار آن مراحل و بیش از بیش و بیش از بیان است
دیگر صدق می کند.
>> پس چه موارد استفاده برای یک حلقه هستند؟
شما با استفاده از استفاده از یک حلقه در حالی که زمانی شما می خواهید یک حلقه تکرار
تعداد نامعلومی از بار، اما آن را احتمالا ممکن است اجرا نمی شود.
به عنوان مثال واقعا مشترک در حالی که حلقه مورد استفاده قرار گرفته
است که برای اجرای کنترل جریان برای یک بازی.
شما ممکن است ندانید چه مدت کاربران در حال رفتن به بازی می شود،
اما شما می خواهید برای حفظ انجام همین کار.
به روز رسانی موقعیت جن های مختلف در هیئت مدیره.
شما می خواهید به نگه داشتن چیزهای در حال حرکت در تمام اوقات،
اما شما نمی دانید که هنگامی که کاربران در حال رفتن به توقف بازی
یا زمانی که آنها در حال رفتن برای اجرا از زندگی می کند.
بنابراین یک حلقه در حالی است که واقعا خوب برای چیزی شبیه به آن.
که یک مورد استفاده مناسب است.
>> برای در حالی که حلقه، آن را بسیار مشابه است.
شما می خواهید یک حلقه به تکرار ناشناخته چند بار، اما حداقل یک بار.
شما ممکن است این برای یک بازی استفاده بیش از حد، اما یک مورد استفاده واقعا مشترک
است باعث کاربر برای ورودی.
به طور کلی، شما ممکن است چیزی می گویند خواهم، من یک عدد صحیح مثبت را،
و شما ممکن است قرار داده است که در داخل یک در حالی که حلقه.
پس از آن همیشه آنها را در شما خواهد خواست حداقل یک بار برای یک عدد صحیح مثبت.
اگر آنها به شما یک عدد صحیح مثبت را، شما ممکن است از شکستن حلقه.
شما ممکن است انجام شود.
عبارت بولی در در حالی که انجام می شود نادرست است.
>> و شما آنها را دوباره بپرسد.
اگر آنها به شما یک عدد منفی که در آن به آنها برخی از کلمه یا چیزی است که نوع
واقعا مفید شما، شما ممکن است استفاده از
در حالی که حلقه به عقب برویم و انجام آن را دوباره و دوباره و دوباره.
شما قطعا می خواهید به درخواست آنها به شما یک عدد می دهد یک بار،
اما شما چند بار مطمئن شوید که پس از آن که آنها ممکن است آفات.
و به این ترتیب آیا در حالی که آن را استفاده زیادی مورد درخواست از کاربر برای ورودی.
و یک حلقه استفاده برای به طور معمول وقتی است مورد
شما می خواهید به تکرار یک حلقه تعداد گسسته از زمان،
هر چند شما ممکن نیست دانستن تعدادی از بار
در حال حاضر این برنامه وارد شده است.
>> بنابراین برای مثال، شاید شما یک برنامه که در آن شما کاربر برای تعدادی تحریک کند.
و آنها را وارد کنید 100.
و پس از آن خود را برای حلقه در آن صورت اجرا 100 بار.
یا شاید آنها را وارد کنید 1،000 در برنامه شما
و سپس به اجرای حلقه 1،000 بار.
این تعداد خاص زمان است.
آنها لزوما می دانم آنچه که تعداد
برنامه لحظه وارد شده است.
این حلقه در حالی که دوست ندارد که در آن می تواند بی نهایت است.
این است و نه یک عدد است که شما فقط نمی دانم.
در حال حاضر حتی اگر من مشخص شده همه این موارد استفاده،
شما باید بدانید که در خیلی در هر شرایط،
شما می توانید تمام مبادله سه نفر از این حلقه ها.
شما می توانید یک حلقه for که در آن شما با استفاده از در غیر این صورت استفاده از یک حلقه در حالی که.
شما می توانید یک حلقه for هر کجا استفاده شما می خواهم یک در حالی که حلقه و غیره استفاده کنید.
این می تواند یک کمی مشکل گاهی اوقات، بنابراین به طور کلی آن را یک عمل خوب است
به پایبندی به یک مورد استفاده معمولی.
استفاده از یک در حالی که حلقه اگر شما می خواستم چیزی را یک بار، حداقل.
استفاده از یک حلقه اگر شما می خواهید به انجام چیزی یک شماره خاص از زمان است.
پس از همه، به همین دلیل وجود دارد سه نوع مختلف از حلقه.
>> به طوری که آنها می تواند استفاده شود در چهار چوب حق.
اما شما می توانید مبادله آنها اگر شما می خواهید.
اگر شما احساس راحتی با حلقه در حالی که و شما همیشه می خواهید به استفاده حالی که حلقه.
این چیزی است که شما می توانید انجام دهید، هر چند آن را
ممکن است یک کمی از لحاظ دستوری روی حیله و تزویر، که در آن یک حلقه for
امر می تواند بسیار ساده تر است.
>> نام من ... است داگ لوید است و این CS50.