ساختار تکرار for  

   ساختار تکرار for نيز مانند دو ساختار قبلی يک حلقه تکرار می سازد. از ساختار تکرار for معمولاً هنگامی که دفعات تکرار حلقه براساس يک شمارنده می باشد استفاده می شود. ساختار تکرار for به صورت زير می باشد:

for (  افزايش يا کاهش   ; شرط حلقه ;    تعريف متغير )
      مقدار شمارنده                 شمارنده و تعيين
       مقدار اوليه 
     {
           مجموعه دستورات
     }

    ساختار تکرار for را با ساختار تکرار while نيز می توان پياده سازی کرد به عنوان مثال دو برنامه زير اعداد 1 تا 5 را بر روی صفحه نمايش چاپ می کنند:

#include <iostream>
 
int main()
{
  int counter = 1; 
 
  while ( counter <= 5 ) { 
     cout << counter << endl; 
     ++counter;
  }
  return 0;
}

   برنامه فوق با حلقه while نوشته شده بود. در برنامه زير معادل حلقه while فوق را با حلقه for پياده سازی می کنيم:

#include <iostream>
 
int main()
{
 
  for ( int counter = 1; counter <= 5; counter++ )
     cout << counter << endl;
 
return 0;
}

   در برنامه فوق هنگامی که دستور for اجرا می شود متغير کنترلی counter تعريف می گردد و عدد 1 در آن قرار می گيرد. سپس شرط حلقه مورد بررسی قرار می گيرد (counter<=5) چون مقدار counter ، عدد 1 می باشد پس شرط درست است و دستور حلقه، يعنی دستور cout اجرا می گردد و اولين عدد يعنی 1 نمايش داده می شود. پس از آن دستور ++counter اجرا می گردد و مقدار متغير counter يک واحد اضافه می شود. سپس مجدداً شرط حلقه بررسی و در صورت برقرار بودن شرط دستور cout اجرا می گردد. اين روال تا وقتی که شرط برقرار باشد ادامه می يابد و به محض برقرار نبودن شرط يعنی هنگامی که counter حاوی عدد 6 شود خاتمه می يابد و برنامه به پايان می رسد.

1 2 3 4 5

   در برنامه قبلی اگر حلقه for را به صورت زير بازنويسی کنيم:

for(int counter=10; counter>=1; counter=counter-2)

   خروجی برنامه اعداد زوج 10 تا 1 به صورت معکوس می باشد، يعنی :

10 8 6 4 2

   توجه داشته باشيد که در حلقه فوق به جای استفاده از دستور counter=counter-1 می توانستيم از دستور counter -= 2 استفاده کنيم.

   مثال : برنامه ای بنويسيد که مجموع اعداد زوج 1 تا 100 را محاسبه کند.

#include <iostream.h>
 
int main ( )
{ int sum = 0;
 
  for (int num = 2; num <= 100; num += 2)
     sum += num;
  cout << "2 + 4 + 6 + ... + 100 =" <<sum<<endl;
 
  return 0;
}
2 + 4 + 6 + ... + 100 =2550

   توجه داشته باشيد که حلقه for در برنامه فوق را با کمک عملگر کاما ( , ) می توانيم به صورت زير نيز بنويسيم:

for (int num = 2;
     num <= 100;
     sum += num, num +=2);

   ضمناً شکستن حلقه به چند خط نيز مشکلی ايجاد نمی کند. البته دو مورد اخير توصيه نمی شوند، چون از خوانايی برنامه می کاهند.

   مثال : برنامه ای بنويسيد که عددی را از ورودی دريافت کرده و 2 به توان آن عدد را محاسبه و در خروجی چاپ نمايد.

#include <iostream.h>
int main( )
{
  unsigned long int x=1;
  int power;
 
  cout << "Enter power:";
  cin >>power;
 
  for (int counter=1;counter<=power;counter++)
    x*=2;
 
  cout << "2 ^ " << power << " = " << x <<endl;
 
return 0;
}
Enter power:25
2 ^ 25 = 33554432

   در مثال های فوق، دستورات حلقه for را داخل { } قرار نداديم چون حلقه for تنها شامل يک دستور بود، توجه داشته باشيد که اگر بيش از يک دستور در حلقه به کار رود ملزم به استفاده از { } می باشيم.

   مثال : برنامه ای بنويسيد که جدول ضرب 5X5 را ايجاد کند.

#include <iostream.h>
int main( )
{
 
  for (int x=1;x<=5;x++)
   {
     for (int y=1;y<=5;y++)
        cout <<x*y<<"\t";
     cout<<endl;
   }
 
  return 0;
}

   خروجی برنامه به صورت زير خواهد بود:

1     2     3     4     5
2     4     6     8     10
3     6     9     12    15
4     8     12    16    20
5     10    15    20    25

   در برنامه فوق حلقه شامل متغير x ، دارای دو دستور for و cout بود، به همين علت از { } استفاده شد. اما حلقه شامل متغير y تنها دارای يک دستور cout بود. اگر دقت کرده باشيد دستور ;"cout<<x*y<<"\t دارای علامت t\ بود. به کار بردن t\ باعث جدول بندی و مرتب شدن خروجی می شود. در حقيقت مکان نمای صفحه نمايش را در محل جدول بندی قرار می دهد. ضمناً در مثال فوق يک ساختار for در دل ساختار for ديگری استفاده شد به اين شيوه استفاده حلقه های تودرتو گفته می شود که در برنامه نويسی ها به کرات از آنها استفاده می شود. در ضمن توجه داشته باشيد که اگر از دستور ;cout <<endl استفاده نشود، خروجی به صورت نا مرتب زير خواهد بود:

1    2     3     4     5     2     4     6     8     10
3    6     9     12    15    4     8     12    16    20
5    10    15    20    25

   نکته : در حلقه های تکرار ممکن است شرط حلقه را به اشتباه بنويسيم يا به عنوان مثال شمارنده حلقه را افزايش ندهيم در چنين حالاتی ممکن است پس از اجرای برنامه، برنامه به اتمام نرسد و حلقه همچنان تکرار شود. در صورت بروز چنين مشکلی با فشردن کليد Ctrl همراه با  Break    (Ctrl+Break) اجرای برنامه به صورت ناگهانی قطع می شود و به محيط ويرايشگر ++C باز می گرديد و می توانيد کد اشتباه را درست کنيد. سپس برنامه را مجدداً اجرا کنيد.
 

 

 

   معرفی کامپيوتروبرنامه نويسی

   ساختارهای کنترلی

   توابع

   آرايه ها

   اشاره گر ها و رشته ها

   کلاسها

   گرانبار کردن عملگر ها

 
 
 
   
 
 
 

حق کپی رایت محفوظ می باشد