تفاوت do-while و while

تفاوت حلقه‌های do-while و while در زبان C

در برنامه‌نویسی، حلقه‌ها ابزارهای قدرتمندی برای اجرای تکراری دستورات هستند. دو نوع رایج حلقه در زبان C، while و do-while هستند که اگرچه شباهت‌هایی دارند، اما تفاوت‌های کلیدی در رفتار و کاربرد آنها وجود دارد.


ساختار پایه حلقه while

حلقه while ابتدا شرط را بررسی می‌کند و تنها در صورت برقرار بودن شرط، بدنه حلقه اجرا می‌شود:

while (شرط) {
   // دستورات
}
  • بررسی شرط قبل از اجرای بدنه حلقه
  • امکان عدم اجرای حتی یک بار بدنه حلقه
  • مناسب برای موقعیت‌هایی که تعداد تکرار نامشخص است

ساختار پایه حلقه do-while

حلقه do-while ابتدا بدنه حلقه را اجرا کرده و سپس شرط را بررسی می‌کند:

do {
   // دستورات
} while (شرط);
  1. اجرای بدنه حلقه حداقل یک بار بدون توجه به شرط
  2. بررسی شرط بعد از اجرای بدنه حلقه
  3. مناسب برای منوها یا ورودی‌هایی که نیاز به حداقل یک اجرا دارند
مقایسه 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 انعطاف‌پذیری بیشتری ارائه می‌دهد.