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

به طور کلی، تو برنامه‌نویسی از حلقه‌ها برای تکرار یک بلوک کد استفاده میشه و تا زمانی که شرط خاصی که ما تعیین کردیم، برقرار باشه، تکرار کدها ادامه پیدا می‌کنه. توی زبان برنامه‌نویسی C، سه نوع حلقه اصلی داریم:

۱- حلقه for

۲- حلقه while

۳- حلقه do…while

این آموزش مخصوص حلقه‌های while و do…while هست و توی یک مطلب دیگه کلی مباحث باحال در مورد حلقه for نوشتیم و با جزئیات کامل بررسی کردیم.

حلقه while: تکرار با شرط قبلی

ساختار حلقه while این شکلیه:

while (عبارت شرطی)
{
// دستورات بدنه حلقه
}

حلقه while چطور کار می‌کنه؟

  • اول از همه، برنامه میاد و «عبارت شرطی» که داخل پرانتز نوشتیم رو بررسی می‌کنه. 
  • اگه عبارت شرطی درست (true) باشه، دستورات داخل بدنه حلقه while اجرا میشن و بعدش دوباره برمی‌گرده سر بررسی همون عبارت شرطی.
  • این روند همینطور ادامه پیدا می‌کنه و تکرار میشه تا زمانی که عبارت شرطی نادرست بشه.
  • به محض اینکه عبارت شرطی نادرست شد و مقدار صفر رو برگردوند، حلقه تموم میشه و برنامه میره سراغ کدهای بعدی.

اگه دوست دارید درباره عبارت‌های شرطی و اینکه چطور درست یا نادرست ارزیابی میشن (مقدار غیر صفر برای درست و صفر برای نادرست) بیشتر بدونید، پیشنهاد می‌کنم به مقاله عملگرها در برنامه‌نویسی C، قسمت عملگرهای رابطه‌ای و منطقی مراجعه کنید.

فلوچارت حلقه while

Image

مثال ۱: حلقه while

بیایید یه مثال ساده برای حلقه while ببینیم. این برنامه اعداد 1 تا 5 رو برامون چاپ می‌کنه:

// برنامه چاپ اعداد 1 تا 5
#include <stdio.h>

int main()
{
    int counter = 1; // مقدار اولیه شمارنده رو 1 قرار میدیم

    while (counter <= 5) // تا زمانی که شمارنده کمتر یا مساوی 5 باشه، ادامه بده
    {
        printf("%d\n", counter); // عدد جاری رو چاپ کن
        ++counter; // شمارنده رو یکی افزایش بده
    }
    return 0;
}

خروجی:

1
2
3
4
5

حالا ببینیم اینجا چه اتفاقی میفته:

۱- در ابتدای برنامه، متغیر counter تعریف شده و مقدار اولیه‌اش 1 قرار داده میشه.

۲- وقتی counter = 1 هست، عبارت شرطی counter <= 5 درست ارزیابی میشه.  برای همین، دستورات داخل بدنه حلقه while اجرا میشن و عدد 1 روی صفحه چاپ میشه. بعدش، مقدار counter یکی زیاد میشه و به 2 می‌رسه.

۳- حالا counter = 2 هست و دوباره عبارت شرطی counter <= 5 درست ارزیابی میشه.  بدنه حلقه while باز هم اجرا میشه، عدد 2 چاپ میشه و مقدار counter به 3 افزایش پیدا می‌کنه. 

۴- این روند همینطور ادامه پیدا می‌کنه تا زمانی که counter به 6 برسه.

۵- وقتی counter = 6 شد، عبارت شرطی counter <= 5 دیگه درست نیست و حلقه تموم میشه.

حلقه do…while: حداقل یک بار اجرا!

حلقه do…while خیلی شبیه به حلقه while هست، اما یه تفاوت مهم داره: بدنه حلقه do…while حداقل یک بار، قبل از اینکه شرط بررسی بشه، اجرا میشه!

ساختار حلقه do…while این شکلیه:

do
{
// دستورات داخل حلقه
}
while (عبارت شرطی);

حلقه do…while چطور کار می‌کنه؟

  • اول از همه، بدون هیچ شرط و شروطی، بدنه حلقه do…while یک بار اجرا میشه. بعد از اون، نوبت به بررسی «عبارت شرطی» می‌رسه.
  • اگه عبارت شرطی درست (true) باشه، بدنه حلقه دوباره اجرا میشه و دوباره عبارت شرطی بررسی میشه.
  • این روند ادامه پیدا می‌کنه تا زمانی که عبارت شرطی نادرست بشه.
  • اگه عبارت شرطی نادرست شد و مقدار صفر رو برگردوند، حلقه تموم میشه.

فلوچارت حلقه do…while در برنامه‌نویسی C

Image

مثال ۲: حلقه do…while

بیایید یه برنامه بنویسیم که اعداد رو از کاربر بگیره و مجموعشون رو حساب کنه. این کار تا زمانی ادامه پیدا می‌کنه که کاربر عدد صفر رو وارد کنه:

// برنامه محاسبه مجموع اعداد ورودی تا زمان وارد شدن عدد صفر
#include <stdio.h>

int main()
{
    double currentNumber, totalSum = 0; // متغیر برای عدد ورودی و مجموع

    // بدنه حلقه حداقل یکبار اجرا می‌شود
    do
    {
        printf("یه عدد وارد کن (0 برای پایان): ");
        scanf("%lf", &currentNumber);
        totalSum += currentNumber; // عدد وارد شده رو به مجموع اضافه کن
    }
    while(currentNumber != 0.0); // تا زمانی که عدد وارد شده 0.0 نباشه، ادامه بده

    printf("مجموع اعداد وارد شده: %.2lf\n", totalSum);
    return 0;
}

خروجی:

یه عدد وارد کن (0 برای پایان): 1.5
یه عدد وارد کن (0 برای پایان): 2.4
یه عدد وارد کن (0 برای پایان): -3.4
یه عدد وارد کن (0 برای پایان): 4.2
یه عدد وارد کن (0 برای پایان): 0
مجموع اعداد وارد شده: 4.70

امیدواریم این آموزش براتون مفید بوده باشه! این مقاله توسط سایت علمی رایشمند برای شما آماده شده است.