در زبان های برنامه نویسی مواقعی وجود دارد که نیاز است قسمتی از کد ها به صورت تکراری تا زمانی مشخص اجرا شوند. در این مواقع میتوان از حلقه for در زبان سی شارپ استفاد کرد. در این فصل با حلقه ی for آشنا خواهیم شد.
حلقه for
کلمه رزرو شده for
به یک حلقه در زبان برنامه نویسی سی شارپ اشاره دارد. حلقه ی for
مجموعهای از دستورات را تا زمانی که شرط مشخص شده در آن صحیح ارزیابی میشود به صورت تکراری اجرا میکند.
در زیر قاعده نوشتاری حلقه for
آمده است :
for (variable initialization; condition; steps) { //execute this code block as long as condition is satisfied }
همانطور که در قاعده نوشتاری بالا آمده است حلقه for
شامل سه قسمت است. مقدار اولیه (initialization)، عبارت شرطی (condition)، گام یا شمارنده (steps) که هر کدام از آن ها با علامت سمی کالن(;) از هم جدا شده اند. توضیحی از هر قسمت در زیر آمده است :
- مقداردهی متغیر : در این قسمت یک متغیر اعلان و مقدار دهی میشود. این متغیر در قسمتهای شرطی و شمارنده استفاده می شود.
-
شرط : قسمت شرطی در حلقه
for
شامل یک عبارت بولین است که یک مقدار صحیح و یا ناصحیح را برمیگرداند. - گام یا شمارنده : در این قسمت یک کاهنده و یا افزایش دهنده قرار می گیرد.
در زیر نمونه مثال ساده ای از حلقه for
آورده شده است :
using System;
public class Program
{
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Value of i: {0}", i);
}
}
}
خروجی نمونه مثال بالا به شکل زیر است :
Value of i: 0 Value of i: 1 Value of i: 2 Value of i: 3 Value of i: 4 Value of i: 5 Value of i: 6 Value of i: 7 Value of i: 8 Value of i: 9
شکل زیر اجرای گام به گام مثال بالا را نشان میدهد :
همانطور که در شکل بالا مشخص است اولین گام تعریف و مقدار دهی متغیری از نوع int
است. گام دوم بررسی شرط بوده و در صورتی که صحیح ارزیابی شود در گام سوم دستورات موجود در بدنه حلقه اجرا خواهد شد. در گام چهارم به مقدار متغیر یکی افزوده شده و در نهایت دوباره شرط حلقه ارزیابی می شود.
قرار دادن قسمت های مقدار دهی اولیه، عبارت شرطی و شمارنده در حلقه for
اجباری نیست. می توانید یک متغیر را قبل از حلقه for
مقدار دهی کنید و قسمتهای شرط و شمارنده را در بدنه حلقه for
تعریف کنید.
using System;
public class Program
{
public static void Main()
{
int i = 0;
for(;;)
{
if (i < 10)
{
Console.WriteLine("Value of i: {0}", i);
i++;
}
else
break;
}
}
}
خروجی به شکل زیر خواهد بود :
Value of i: 0 Value of i: 1 Value of i: 2 Value of i: 3 Value of i: 4 Value of i: 5 Value of i: 6 Value of i: 7 Value of i: 8 Value of i: 9
در مورد حلقه های بینهایت مراقب باشید. در صورتی که برای حلقه ی for
مقدار دهی اولیه ، شرط و شمارنده در نظر گرفته نشود ، می تواند به یک حلقه ی بی نهایت تبدیل شود. بنابراین اطمینان حاصل کنید که عبارت شرطی در حلقه for
در نقطه ای ، مقدار false
را برای اتمام حلقه برمیگرداند.
مثالی از حلقه بی نهایت :
for ( ; ; )
{ Console.Write(1);
}
خروجی به شکل زیر است :
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1.....
نکته : حلقه های بی نهایت بعد از اجرا باعث خطا و سر ریز در حافظه میشوند.
متغیری که در حلقه for
به کار برده میشود میتواند از هر نوعی از داده نوع های شمارنده مانند double
، decimal
و ... باشد :
for (double d = 1.01D; d < 1.10; d+= 0.01D)
{ Console.WriteLine("Value of i: {0}", d);
}
خروجی :
Value of i: 1.01 Value of i: 1.02 Value of i: 1.03 Value of i: 1.04 Value of i: 1.05 Value of i: 1.06 Value of i: 1.07 Value of i: 1.08 Value of i: 1.09
قسمت شمارنده در حلقه for
میتواند مقدار متغیر را کاهش یا افزایش دهد :
for(int i = 10; i> 0;i--)
{ Console.WriteLine("Value of i: {0}", i);
}
خروجی :
Value of i: 10 Value of i: 9 Value of i: 8 Value of i: 7 Value of i: 6 Value of i: 5 Value of i: 4 Value of i: 3 Value of i: 2 Value of i: 1
کلمه رزرو شده break
شما می توانید در هر زمانی با استفاده از کلمه رزرو شده break
از حلقه های for
خارج شوید :
for (int i = 0; i < 10; i++)
{ if( i == 5 ) break;
Console.WriteLine("Value of i: {0}", i);
}
خروجی :
Value of i: 0 Value of i: 1 Value of i: 2 Value of i: 3 Value of i: 4
حلقه های تو در توی for
در زبان برنامه نویسی سی شارپ می توان حلقه های for
را به صورت تو در تو به کار برد :
for (int i = 0; i < 10; i++)
{ for(int j =i; j< 10; j++) Console.WriteLine("Value of i: {0}, J: {1} ", i,j);
}
خروجی نمونه مثال بالا به شکل زیر است :
Value of i: 0 , j: 0 Value of i: 0 , j: 1 Value of i: 0 , j: 2 Value of i: 0 , j: 3 Value of i: 0 , j: 4 Value of i: 0 , j: 5 Value of i: 0 , j: 6 Value of i: 0 , j: 7 Value of i: 0 , j: 8 Value of i: 0 , j: 9 Value of i: 1 , j: 1 Value of i: 1 , j: 2 Value of i: 1 , j: 3 Value of i: 1 , j: 4 Value of i: 1 , j: 5 Value of i: 1 , j: 6 Value of i: 1 , j: 7 Value of i: 1 , j: 8 Value of i: 1 , j: 9 Value of i: 2 , j: 2 Value of i: 2 , j: 3 Value of i: 2 , j: 4 Value of i: 2 , j: 5 Value of i: 2 , j: 6 Value of i: 2 , j: 7
به خاطر داشته باشد که :
- حلقه ی for بلاکی از کد ها را به صورت تکراری اجرا میکند.
- حلقه ی for شامل سه قسمت است : مقدار دهی اولیه ، قسمت شرطی و گام یا شمارنده.
- از کلمه ی break برای خروج از هر قسمتی از حلقه for میتوان استفاده کرد.
- در زبان برنامه نویسی سی شارپ حلقه های for را میتوان تو در تو به کاربرد