close
دانلود فیلم
حلقه for

حلقه ی for بسیار پرکاربرد و مهمه به همین جهت روش زیاد تمرین میکنیم:

-برنامه ای بنویسید که اعداد طبیعی کوچکتر از 100 را با فرمتی مناسب در خروجی از بزرگ به کوچک چاپ کند

 

>> سورس در ادامه مطلب <<

ادامه مطلب...

حلقه for

يک حلقه (loop) دستوری است تا زمان برآورده شدن شرطی دستورات ديگر را تکرار می کند. دستور داخل حلقه می تواند بلاکی از کد، حلقه يا هر دستور ديگری باشد.

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

در C++ فرم کلی حلقه for به صورت زير است:

For (initial; condition; update)
   {
   loop_body
   }

قسمت های initial، condition و update همگی عبارت هستند و با هم درون يک جفت پرانتز قرار می گيرند و توسط علامت سميکولن از هم جدا می شوند. Loop_body يا بدنه حلقه دستورات داخل حلقه است که بايد تکرار شود و می تواند يک دستور ساده يا دستور ترکيبی باشد. اگر بدنه حلقه فقط شامل يک دستور باشد نيازی به آکولاد نيست. اما اگر بيشتر از يکی باشد بايد درون آکولاد محصور شود تا به عنوان بلاکی از کد ديده شود.

حلقه for طبق دياگرام زير اجرا می شود:

همانطور که ديده می شود ابتدا مرحله initial اجرا می شود. سپس condition بررسی می شود. اگر شرط برقرار نباشد حلقه به پايان می رسد و اجرا از دستور بعدی حلقه ادامه پيدا می کند. اگر شرط درست باشد loop_body اجرا می شود. سپس قسمت update اجرا می شود.

قسمت initial تنها يکبار در ابتدای ورود به حلقه اجرا می شود و معمولا برای اعلان و مقداردهی اوليه شمارنده ها و متغيرهای داخل حلقه استفاده می شود. قسمت condition عبارت شرطی است و هربار قبل از تکرار بدنه حلقه ارزيابی می شود. اگر در آغاز غلط باشد بدنه حلقه اصلا اجرا نخواهد شد. قسمت update در هربار تکرار حلقه اجرا می شود و معمولا برای افزايش يا کاهش شمارنده حلقه استفاده می شود.

نکته. قسمت های initial، condition و update هر کدام می توانند حذف شوند.
نکته. اگر قسمت شرط حذف شود هميشه درست فرض می شود.
نکته. برای خوانائی آکولادها زير هم قرار می گيرند و دستورات داخل آنها سه space جلوتر نوشته می شود.


مثال. قطعه کد زير اعداد 1 تا 20 را نمايش می دهد.

for (count = 1; count <= 20; count++)
   cout << count << endl;


با وجوديکه کاربرد اصلی دستور for برای حلقه های با تکرار معلوم است کارهای ديگری را هم می توان با آن انجام داد.


مثال. در حلقه زير چون قسمت شرط حذف شده است هميشه درست درنظر گرفته می شود و عبارت Hello را دائما چاپ می کند.

for ( ; ; )
   cout << "Hello" << endl;

مثال. برنامه زير کاراکترهای اسکی را نمايش می دهد.

#include <iostream.h> int main()
{
   for(int i = 0; i < 128; i++)
      if (i != 26) // ANSI Terminal Clear screen
         cout << " value: " << i
                 << " character: " << char(i) << endl;
   return 0;
}

توجه کنيد که متغير i درون for اعلان شده است و تنها در بدنه حلقه قابل استفاده است.


معمولا شمارنده حلقه به صورت صعودی افزايش پيدا می کند ولی می توان حلقه هائی داشت که متغيير شمارنده آن به صورت های ديگری تغيير می کند.


مثال. در حلقه زير شمارنده حلقه هر بار يک واحد کم می شود.

for (count = 100; count > 0; count--)

مثال. در حلقه زير شمارنده حلقه هر بار 5 واحد زياد می شود.

for (count = 0; count < 1000; count += 5)

مثال. قسمت initial نه تنها برای مقداردهی اوليه بلکه برای اعمال ديگر هم می تواند بکار برود.

count = 1;
for (cout << count ; count < 1000; count++);

مثال. در قسمت شرط حلقه می توان از عملگرهای رابطه ای و منطقی استفاده کرد.

for ( count = 0; count < 1000 && array[count] != 0; )
   cout << array[count++]

مثال. بدنه حلقه می تواند يک جمله پوچ باشد. دستور زير عناصر يک آرايه را برابر با عدد 50 می کند.

for ( count = 0; count < 1000 ; array[count++] = 50 )
   ;

مثال. عملگر کاما را می توان برای مقداردهی يا بروزرسانی دو متغير در دستور for استفاده کرد.

for (i = 0, j = 999; i < 1000; i++, j--)
   b[j] = a[i];

مثال. تا وقتی که کاربر عدد 99 را وارد کند حلقه تکرار می شود.

int nbr = 0;
for ( ; nbr != 99; )
   cin >> nbr;


for تودرتو

حلقه ها مانند دستورات شرطی می توانند تودرتو باشند. يک دستور for می تواند درون دستور ديگری قرار بگيرد. در این حالت حلقه داخلی به تعداد تکرار شمارنده خود ضرب در شمارنده حلقه بیرونی تکرار می شود.


مثال. دستور cout درون حلقه داخلی 5×3=15 بار تکرار می شود.

for (int i = 1 ; i < 3 ; i++ )
   {
   for(int j=0 ; j < 4 ; j++ )
      {
      cout << "This is inner loop " << j ;
      cout << " of outer loop " << i << endl;
      }
   }

مثال. برنامه زير با کاراکتر ستاره (*)‌ يک مستطيل 3×20 رسم می کند.

#include <iostream.h>
int main()
{
   int col=3, row=20;
   for ( ; row > 0; row--)
      {
      for ( ; col > 0; col--)
         cout << "*";
      cout << endl;
      }
   return 0;
}

اين بخش دستورات کنترلی که راهی برای کنترل اجرای برنامه ها در ++C هستند را می پوشاند. اين دستورات شامل دستورات شرطی if-else و switch و حلقه های تکرار while، do-while و for هستند.

دستور if-else
دستور switch
حلقه for
حلقه while
حلقه do-while
دستورات break و continue


ترتيب اجرای برنامه ها در ++C به صورت top-down است. بدين معنی که اجرا از ابتدای تابع ()main آغاز می شود دستور به دستور ادامه پيدا می کند تا به انتهای ()main برسد. دستورات کنترلی موجود در ++C اجازه تغيي ترتيب اجرای برنامه را می دهند.

دستورات شرطی که از ساختارهای تصمیم گیری هستند دستوراتی هستند که در صورت برقرار بودن شرطی دستوری را اجرا می کنند. دو دستور شرط در ++C وجود دارد: ‌if و switch.

به کانال تلگرام سایت ما بپیوندید