زبان برنامه نویسی سی/حلقه do while و while: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
جزبدون خلاصۀ ویرایش
جزبدون خلاصۀ ویرایش
خط ۳۴:
{{پایان چپ‌چین}}
 
'''نکته :''' در حلقه while تنها جفت آکولاد باز و بسته نوشته می‌شوند و در انتهای آن نیازی به سمی کالن ( ; ) نیست اما در حلقه do while بعد از آکولادهای do که داخل آنها دستورات را نوشتید و درست پس از شرط آن که داخل while نوشته می‌شود باید یک سمی کالن یا نقطه ویرگول ( ; ) '''بگذارید'''
حلقه do while یک بار اجرا می‌شود و سپس شرط داخل while مقابل آن بررسی می‌شود تا اگر برقرار بود بدنه do تکرار شود ؛ بنابراین یک بار یا بیشتر به اجرا در می‌آید اما حلقه while بررسی می‌کند که آیا شرط آن برقرار است یا خیر ، اگر نبود حلقه به کلی نادیده گرفته می‌شود و اجرا نمی‌شود . این تفاوت do while و while است . '''دقت کنید :''' شما می‌توانید از آکولادهای باز و بسته برای ایجاد بدنه برای do while و while استفاده نکنید اما در این صورت تنها یک دستور statement می‌توانید برای آنها بنویسید تا اجرا و تکرار شوند و خطوط بعدی از نظر کامپایلر خارج از حلقه خواهند بود و در صورتی که برای آنها آکولاد بنویسید ، داده‌هایی که در آن اعلان یا تعریف می‌کنید '''محلی''' خواهند بود
 
حلقه do while یک بار اجرا می‌شود و سپس شرط داخل while مقابل آن بررسی می‌شود تا اگر برقرار بود بدنه do تکرار شود ؛ بنابراین یک بار یا بیشتر به اجرا در می‌آید اما حلقه while بررسی می‌کند که آیا شرط آن برقرار است یا خیر ، اگر نبود حلقه به کلی نادیده گرفته می‌شود و اجرا نمی‌شود . این تفاوت do while و while است . '''دقت کنید :''' شما می‌توانید از آکولادهای باز و بسته برای ایجاد بدنه برای do while و while استفاده '''نکنید''' اما در این صورت تنها یک دستور statement می‌توانید برای آنها بنویسید تا اجرا و تکرار شوند و خطوط بعدی ، از نظر کامپایلر خارج از حلقه خواهند بود و در صورتی که برای آنها آکولاد بنویسید ( که می‌توانید داخل آنها دستورات متعدد ، حلقه‌های دیگر را به کمک عملگرها بنویسید ) ، داده‌هایی که در آن اعلان یا تعریف می‌کنید '''محلی''' خواهند بود
'''دقت کنید :''' در شکل کلی هر حلقه نوشته‌ایم : updating for conditional-expression به معنای اینکه شما باید تغییری را در عبارت شرطی حلقه در حلقه ایجاد کنید تا در هر بار اجرای حلقه به اجرا گذاشته شود و مرحله به مرحله به سمتی برود که دیگر شرط برقرار نباشد و خلقه بشکند . در غیر این صورت حلقه شما دائمی و بی‌نهایت خواهد شد و به سیستمی که در آن برنامه شما اجرا می‌شود فشار می‌آورد ( CPU شدیداً تحت فشار قرار خواهد گرفت ) . بنابراین مهم است که به لحاظ منطقی حلقه شما به شکلی طراحی شود که شرط آن در صورت برقرار بود به سمت برقرار نبودن حرکت کند و در یک جا غلط flase شود و حلقه بشکند
 
'''دقت کنید :''' در شکل کلی هر حلقه نوشته‌ایم : updating for conditional-expression به معنای اینکه شما باید تغییری را در عبارت شرطی حلقه در حلقه ایجاد کنید تا در هر بار اجرای حلقه به اجرا گذاشته شود و مرحله به مرحله به سمتی برود که دیگر شرط برقرار نباشد و خلقهحلقه بشکند . در غیر این صورت حلقه شما دائمی و بی‌نهایت خواهد شد و به سیستمی که در آن برنامه شما اجرا می‌شود فشار می‌آورد ( CPU شدیداً تحت فشار قرارمشغول خواهد گرفتشد ) . بنابراین مهم است که به لحاظ منطقی حلقه شما به شکلی طراحی شود که شرط آن در صورت برقرار بودبودن به سمت برقرار نبودن حرکت کند و در یک جا غلط flase شود و حلقه بشکند
 
'''نکات :'''
 
با دستور break شما می‌توانید حلقه را در هر جای آن بشکنید و اجرای آن را متوقف و روند اجرای برنامه را به بعد از حلقه بسپارید ؛ که البته واضح است شما می‌توانید و باید با کمک دستورات شرطی ( if ها ) برای شکستن حلقه خود اقدام کنید . دستور goto روند اجرای برنامه را به برچسب نام برده شده در آن انتقال می‌دهد . شما حلقه‌ها را تنها در تابع‌ها می‌توانید به کار ببرید و اگر در داخل حلقه خود از دستور return استفاده کنید مقدار نسبت داده شده به return برای تابع در نظر گرفته می‌شود و حلقه شکسته می‌شود ( اجرای آن به پایان می‌رسد ) در هر کدام از حلقه‌های do while و while نوشتن دستور continue باعث می‌شود تا روند اجرای برنامه به انتهای حلقه برود و یک بار دیگر از اول بررسی کند که شرط برقرار است یا خیر و دستوراتی که مابین آن تا انتهای حلقه قرار دارند نادیده گرفته می‌شوند که بدیهی است می‌توانید و باید آن را با کمک دستورهای شرطی ( if ها ) به اجرا بگذارید
 
'''دقت کنید :''' شما برای عبارت شرطی ( conditional-expression ) می‌توانید با کمک عملگرها ، از چند زیر عبارت استفاده کنید مثلاً :