از دیگر دستورات موجود در زبان ++C حاقهء 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 جلوتر نوشته می شود.
مثال. قطعه کد زیر اعداد ۱ تا ۲۰ را نمایش می دهد.
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—)
مثال. در حلقه زیر شمارنده حلقه هر بار ۵ واحد زیاد می شود.
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
مثال. بدنه حلقه می تواند یک جمله پوچ باشد. دستور زیر عناصر یک آرایه را برابر با عدد ۵۰ می کند.
for ( count = 0; count < 1000 ; array[count++] =50 )
;
مثال. عملگر کاما را می توان برای مقداردهی یا بروزرسانی دو متغیر در دستور for استفاده کرد.
for (i = 0, j = 999; i < 1000; i++, j–)
;[ b[j] = a[i