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

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

۱- حلقه for

۲- حلقه while

۳- حلقه do…while

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

حلقه for

ساختار حلقه for خیلی مشخصه:

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

حلقه for چگونه کار می کند؟

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

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

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

Image

مثال ۱: حلقه for

بیاید با یک مثال ساده شروع کنیم. این برنامه اعداد 1 تا 10 رو برامون چاپ می‌کنه:

// چاپ اعداد 1 تا 10
#include <stdio.h>

int main() {
    int counter; // یک متغیر برای شمارش

    for (counter = 1; counter < 11; ++counter)
    {
        printf("%d ", counter);
    }
    printf("\n"); // برای رفتن به خط جدید بعد از چاپ اعداد

    return 0;
}

خروجی:

1 2 3 4 5 6 7 8 9 10

حالا ببینیم چطور کار می‌کنه:

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

۲- بعدش، عبارت شرطی counter < 11 بررسی میشه. چون 1 کمتر از 11 هست، این شرط درست ارزیابی میشه و بدنه حلقه for اجرا میشه. عدد 1 (مقدار متغیر counter) روی صفحه چاپ میشه.

۳- در ادامه، عبارت به روزرسانی ++counter اجرا میشه. مقدار counter به 2 افزایش پیدا می‌کنه و دوباره عبارت شرطی درست باقی می‌مونه، پس بدنه حلقه اجرا میشه. با این کار عدد 2 (مقدار counter) روی صفحه چاپ میشه.

۴- این روند ادامه داره و همینطور اعداد رو چاپ می‌کنه تا زمانی که مقدار متغیر counter به 11 برسه.

۵- وقتی counter به 11 می‌رسه، عبارت شرطی counter < 11 نادرست میشه و حلقه for به پایان میرسه.

مثال ۲: حلقه for برای محاسبه مجموع اعداد

بیاید برنامه‌ای بنویسیم که مجموع اعداد طبیعی تا یک عدد خاص n رو برامون حساب کنه. (یادآوری: اعداد طبیعی همون 1, 2, 3 و... هستند)

// برنامه محاسبه مجموع اعداد طبیعی تا n
#include <stdio.h>

int main()
{
    int limitNumber, currentCount, totalSum = 0; // متغیرها: عدد نهایی، شمارنده، و مجموع
    printf("یه عدد صحیح مثبت وارد کن: ");
    scanf("%d", &limitNumber);

    // حلقه تا زمانی ادامه پیدا می‌کنه که currentCount از limitNumber بزرگتر بشه
    for(currentCount = 1; currentCount <= limitNumber; ++currentCount)
    {
        totalSum += currentCount; // به مجموع اضافه میشه
    }

    printf("مجموع اعداد = %d\n", totalSum);
    return 0;
}

خروجی:

یه عدد صحیح مثبت وارد کن: 10
مجموع اعداد = 55

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

مقدار وارد شده توسط کاربر در متغیر limitNumber ذخیره میشه. فرض کنید کاربر عدد 10 رو وارد کرده باشه.

در شروع حلقه for، مقدار متغیر currentCount برابر با 1 تعیین میشه. در ادامه، عبارت شرطی بررسی میشه. چون currentCount <= limitNumber (که 1 کوچکتر از 10 هست) درست ارزیابی میشه، بدنه حلقه اجرا میشه و در این مرحله، مقدار متغیر totalSum برابر با 1 میشه. (یادتون باشه که متغیر totalSum وظیفه نگهداری مجموع اعداد رو داره.)

سپس، دستور به روزرسانی ++currentCount اجرا میشه و مقدار متغیر currentCount به 2 افزایش پیدا می‌کنه. دوباره عبارت شرطی بررسی میشه و چون 2 هم هنوز کمتر از 10 هست، باز هم بدنه حلقه اجرا میشه. تو این تکرار، مقدار totalSum برابر با 3 خواهد بود (1 + 2 = 3).

این روند همینطور ادامه پیدا می‌کنه و مجموع اعداد محاسبه میشه تا زمانی که مقدار متغیر currentCount به 11 برسه.

وقتی currentCount به 11 میرسه، عبارت شرطی نادرست میشه و مقدار 0 رو برمی‌گردونه، در نهایت حلقه به پایان میرسه.

در پایان برنامه و بعد از اتمام حلقه، مقدار نهایی مجموع که در متغیر totalSum ذخیره شده، روی صفحه چاپ میشه.

در آموزش‌های بعدی، با حلقه‌های while و do…while هم آشنا خواهید شد.

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