تفاوت do-while و while
تفاوت حلقههای do-while و while در زبان C
در برنامهنویسی، حلقهها ابزارهای قدرتمندی برای اجرای تکراری دستورات هستند. دو نوع رایج حلقه در زبان C، while و do-while هستند که اگرچه شباهتهایی دارند، اما تفاوتهای کلیدی در رفتار و کاربرد آنها وجود دارد.
ساختار پایه حلقه while
حلقه while ابتدا شرط را بررسی میکند و تنها در صورت برقرار بودن شرط، بدنه حلقه اجرا میشود:
while (شرط) { // دستورات }
- بررسی شرط قبل از اجرای بدنه حلقه
- امکان عدم اجرای حتی یک بار بدنه حلقه
- مناسب برای موقعیتهایی که تعداد تکرار نامشخص است
ساختار پایه حلقه do-while
حلقه do-while ابتدا بدنه حلقه را اجرا کرده و سپس شرط را بررسی میکند:
do { // دستورات } while (شرط);
- اجرای بدنه حلقه حداقل یک بار بدون توجه به شرط
- بررسی شرط بعد از اجرای بدنه حلقه
- مناسب برای منوها یا ورودیهایی که نیاز به حداقل یک اجرا دارند
مقایسه | while | do-while |
---|---|---|
ترتیب اجرا | شرط → بدنه | بدنه → شرط |
حداقل اجرا | 0 بار | 1 بار |
نقطه پایان | قبل از بدنه | بعد از بدنه |
برای درک عمیقتر کاربرد حلقه do-while در زبان C، پیشنهاد میکنیم به این صفحه بروید و مثالهای عملی بیشتری را مطالعه کنید.
مثالهای کاربردی
در اینجا دو مثال ساده برای مقایسه عملی این دو حلقه ارائه میشود:
مثال while:
خواندن اعداد تا رسیدن به عدد منفی:
int num; while (num >= 0) { scanf("%d", &num); printf("%d\n", num); }
مثال do-while:
نمایش منو تا انتخاب گزینه خروج:
int choice; do { printf("1. ادامه\n2. خروج\n"); scanf("%d", &choice); } while (choice != 2);
همانطور که مشاهده میکنید، انتخاب بین این دو حلقه بستگی کامل به منطق برنامه دارد. اگر نیاز به اجرای حداقل یک بار بدنه حلقه دارید، do-while گزینه بهتری است، در غیر این صورت while انعطافپذیری بیشتری ارائه میدهد.