دستورات تکرار یا حلقه در سی شارپ، یکی دیگر از دستورات پرکاربرد در زبان برنامه نویسی سی شارپ است که به دفعات در برنامه های خود از آن استفاده می کنیم. یک نوع از این دستورات ، دستور حلقه for در سی شارپ است. در این مقاله قصد داریم تا شما را با استفاده از دستور حلقه for در سی شارپ اشنا کنیم.
دستور حلقه for یکی از پرکاربردترین دستورات حلقه است و وظیفه آن اجرای مداوم یک سری از دستورات تا زمان برقرار شدن شرط داخل حلقه است.
شکل دستوری آن در زبان سی شارپ به صورت زیر است:
(افزایش یا کاهش متغیر شرط ;عبارت شرطی ;تعریف و مقدار دهی متغیر شرط)for
}
اجرا مجموعه دستورات تازمان برقراری شرط
{
- تعریف و مقدار دهی متغیر شرط: مانند هر متغیر دیگری متغیر استفاده شده در قسمت شرط ابتدا باید در این قسمت تعریف و مقداردهی اولیه شود .
- عبارت شرطی: یک عبارت boole است که نتیجه درست یا غلط را بر می گرداند .
- افزایش یا کاهش متغیر شرط: برای جلوگیری از اجرای حلقه به صورت بی نهایت باید متغیر شرط در این قسمت افزایش یا کاهش پیدا کند .
ترتیب اجرای مراحل در دستور حلقه for در سی شارپ :
توجه کنید که عبارت تعریف متغیر شرط فقط یکبار خوانده می شود و سپس متغیر شرط ، مقدار دهی اولیه می شود و سپس عبارت شرطی چک می شود، در صورت درست بودن عبارت شرطی ، دستورحلقه for در سی شارپ اجرا می شود. در مرحله بعد مقدار متغیر شرط بروزرسانی می شود و در صورت برقرار بودن اجرای دستورات داخل حلقه از سر گرفته می شود. و این روند تا زمانیکه عبارت شرطی حلقه ، false شود ادامه پیدا می کند.
مثال: از اجرا ساده دستور حلقه for در سی شارپ
class Program { static void Main(string[] args) { for (int i = 0; i < 10; i++) { Console.WriteLine("i=" + i); } } }
با اجرای این دستور مقدار متغیر i به تعداد دفعات اجرای حلقه (10 بار ) چاپ می گردد و مقدار اولیه در ان صفر است.همانطور که توضیح داده شد بعد از مقدار دهی اولیه و چک شدن عبارت شرطی با اجرا شدن دستور حلقه مقدار متغیر شرط یعنی 0 چاپ می گردد و سپس مقدار i افزایش پیدا می کند و این روند تا رسیدن مقدار i به عدد 10 ادامه پیدا می کند در این مرحله چون شرط برقرار نیست بدون اجرا شدن دستور حلقه و چاپ متغیر i کنترل اجرا از حلقه خارج می گردد.
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
مثال: نمایش مقادیر یک آرایه دوبعدی با استفاده از دستور حلقه for در سی شارپ:
static void Main(string[] args) { string[,] grade = { { "16", "12", "15" }, { "19", "18", "17" } }; for (int row = 0; row < grade.GetLength(0); row++) { for (int column = 0; column < grade.GetLength(1); column++) { Console.Write(grade[row, column] + " "); } Console.WriteLine(); } } }
خروجی قطعه کد بالا بصورت زیر خواهد بود :
16 12 15
19 18 17
مقداردهی متغیر در خارج از حلقه
می توان تعریف و مقدار دهی اولیه متغیر شرط را خارج از حلقه for انجام دهیم. در این صورت محدوده تعریف این متغیر خارج از حلقه را نیز شامل می شود اما اگر متغیر را داخل دستور حلقه for در سی شارپ تعریف کنیم در این صورت متغیر تنها در داخل حلقه شناخته شده است و استفاده خارج از آن باعث ایجاد خطا می گردد.
مثال: تعریف و مقدار دهی اولیه متغیر شرط خارج از دستور حلقه for در سی شارپ:
namespace forSatatement { class Program { static void Main(string[] args) { int i = 0; for (; i<10;i++) { Console.WriteLine("i=" + i); } Console.WriteLine("out of for,i=" +i); } } }
در اجرای کد بالا از انجا که متغیر شرط دستور حلقه for خارج از حلقه تعریف شده است استفاده از ان پس از اتمام حلقه و خارج از ان نیز ممکن است در نتیجه اجرای کد بالا خروجی بصورت زیر خواهد بود :
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
out of for,i= 10
نکته
می توانیم قسمت عبارت شرطی در دستور حلقه for را ننویسم که در این صورت حلقه بصورت بی نهایت اجرا خواهد شد زیرا قسمت عبارت شرطی به صورت یک عبارت همیشه درست تلقی می گردد.
مثال:
static void Main(string[] args) { int i = 0; for (; ;i++) { Console.WriteLine("i=" + i); } }
نکته
در صورت استفاده نکردن از آکولاد در دستور حلقه for در سی شارپ تنها دستور اول به عنوان دستور حلقه در نظر گرفته می شود.