حلقه های تکرار درسی شارپ

اگر نياز باشد تا قطعه اي از كد بيش از يكبار اجرا شود نياز به استفاده از حلقه ها مي باشد. براي مثال فرض كنيد آرايه اي به طول 1000 تعريف كرده ايد. اكنون مي خواهيد آنرا با هزار عدد متوالي پركنيد. بديهي است كه روش زير كارآمد نيست!   

int[] intData = new int[1000];
intData[0]=0;
.
.
.
intData[999]=1000;

 نوشتن اين خطوط متوالي احتمالا با كپي و پيست و اصلاح آن حداقل نيم ساعت طول مي كشد! بنابراين نياز به وسيله اي حس مي شود كه بتوان بوسيله ي آن امثال اينگونه كارها را انجام داد.


تعريف حلقه ها و استفاده از آنها :

براي تعريف حلقه ها ابزارهاي متعددي مانند while, do , for , foreach وجود دارند. استفاده و انتخاب آنها بستگي به سليقه ي شما و منطق برنامه دارد. در هر حال يك مساله بديهي است كه همواره بيش از يك راه حل براي يك مساله وجود خواهد داشت.

استفاده از حلقه ي for :

عموما كدنويسي را با كد نويسي مي توان آموخت! بنابراين در مورد انواع حلقه ها مثالهايي ارائه خواهد گرديد.

يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex07 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :  

using System;

namespace ex07
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int[] intData = new int[1000];

for (int i=0 ; i<1000 ; i++ )
intData[i]=i;


for(int i=0 ; i< intData.Length ; i++)
{
int j = intData[i];
Console.WriteLine("intData[" + i + "]=" + j);
}

Console.ReadLine();

}
}
}

 

توضيحاتي در مورد كد فوق :


1- براي تعريف حلقه ي for همانطور كه مي بينيد بايد تعداد بار اجراي حلقه ( اينجا از 0 تا 999 است ) و همچنين نحوه ي رسيدن از 0 به 1000 را مشخص كرد ( در اينجا i++ است يعني هر بار يك واحد به شمارشگر حلقه اضافه مي شود. )


2- در زبان سي i++ يعني i=i+1 و i-- يعني i=i-1 و كلا i-=n يعني i=i-n و به همين ترتيب. براي مثال i*=n يعني i=i*n و i+=n يعني i=i+n و ...


3- اگر پس از حلقه ي for يك خط كد داشته باشيم نيازي به آكولاد نيست (مانند قسمت اول كد). ولي اگر تعداد خطوط مربوط به بدنه ي for زياد بود بايد حتما از آكولاد استفاده شود (مانند قسمت دوم كد). (اين قاعده اي كلي است در زبانهاي مشتق شده از زبان سي در مورد هر چيزي!)


4- فرض كنيد در قسمت اول كد بالا بجاي 1000 مي نوشتيد 1001 . سريعا با يك خطاي زمان اجرا مواجه مي شديد. زيرا مي خواستيد به عضوي از آرايه دسترسي پيدا كنيد كه تعريف نشده است. راه مدرن چك كردن اين مسائل استفاده از خاصيت Length آرايه است كه در قسمت دوم كد در عمل مشاهده مي نماييد. هميشه از اين روش استفاده كنيد.


5- حلقه ي اول يعني اينكه كار پر كردن آرايه intData را از صفر تا 999 يكي يكي (i++) انجام بده.


استفاده از حلقه ي while :

يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex08 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :  

using System;

namespace ex08
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int n = 1;

while (n < 6)
{
Console.WriteLine("Current value of n is {0}", n);
n++;
}

Console.ReadLine();
}
}
}

توضيحاتي در مورد كد فوق :

1- حلقه ي while در بالا كار انجام حلقه را تا هنگامي انجام مي دهد كه شرط ذكر شده در ابتداي آن صادق و برقرار باشد. يعني در حلقه ي فوق تا وقتي n<6 است اين حلقه ادامه خواهد يافت.


2- حلقه ي while صفر يا بيشتر بار ممكن است اجرا شود.


3- در كد فوق از {0} استفاده گرديده است. متد WriteLine به شما اين اجازه را مي دهد كه n تا آرگومان براي آن تعريف كنيد و مقادير هر كدام را كه خواستيد در كد نمايش دهيد از {x} استفاده كنيد. در اين مورد مقدار آرگومان x ام نمايش داده مي شود.

استفاده از حلقه ي do :

يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex09 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :  

using System;

namespace ex09
{

class Class1
{
[STAThread]
static void Main(string[] args)
{
int x;
int y = 0;

do
{
x = y++;
Console.WriteLine(x);

}while(y < 5);

Console.ReadLine();

}
}
}

 

توضيحاتي در مورد كد فوق :

1- اين حلقه به حلقه ي do…while معروف است و هر دو جزء آن بايد ذكر گردد.


2- اين حلقه تا زماني كه شرط ذكر شده در قمست while صحيح است ادامه مي يابد.


3- اين حلقه در ابتداي كار بدون توجه به قسمت while حداقل يكبار اجرا مي شود. (مثال زير را اجرا نماييد)  

int n = 10;
do
{
Console.WriteLine("Current value of n is {0}", n);
n++;
} while (n < 6);

 

استفاده از حلقه ي foreach :

يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex10 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :  

using System;

namespace ex10
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int odd = 0, even = 0;
int[] arr = new int [] {0,1,2,5,7,8,11};

foreach (int i in arr)
{
if (i%2 == 0)
even++;
else
odd++;
}

Console.WriteLine(
"Found {0} Odd Numbers, and {1} Even Numbers.",
odd, even) ;

Console.ReadLine();

}
}
}

 

توضيحاتي در مورد كد فوق :


1- از foreach براي حركت در بين اعضاي يك آرايه (مانند مثال بالا) و يا مجموعه ايي از اشياء استفاده مي شود (روشي شكيل ، مدرن و مطمئن! و تقريبا به ارث رسيده از ويژوال بيسيك!!).

2- در زبانهاي مشتق شده از C ، عملگر % ، باقيمانده را محاسبه مي كند.

3- در كد فوق با استفاده از حلقه ي foreach تك تك اعضاي آرايه در مورد زوج و يا فرد بودند مورد بررسي قرار گرفته اند و تعداد اعضاي زوج و فرد در آخر نمايش داده مي شود .


مطالب مشابه :


آرایه ها در سی شارپ

فروش سامانه پیامک و پنل sms در زبان سي كمي متفاوت بود. فروش پروژه شطرنج به زبان سی شارپ.




حلقه های تکرار درسی شارپ

فروش سامانه پیامک و پنل sms يك برنامه ي سي شارپ جديد console فروش پروژه شطرنج به زبان سی شارپ.




تعريف متدها در سي شارپ

تعريف متدها در سي شارپ فروش سامانه پیامک و پنل sms فروش پروژه شطرنج به زبان سی شارپ.




مباحث تكميلي آرايه ها (آرايه هاي چند بعدي):

فروش سامانه پیامک و پنل sms سي شارپ دو نوع آرايه ي چند فروش پروژه شطرنج به زبان سی شارپ.




پارامترهای ref , out در سی شارپ

فروش سامانه پیامک و پنل sms در سي شارپ دو كلمه ي كليدي به فروش پروژه شطرنج به زبان سی شارپ.




ساختار های تصمیم گیری if , switch-case

1- سي شارپ به كوچكي و فروش پروژه ساعت به زبان #C و سامانه پیام کوتاه و پنل sms-ارسال




کنترل TreeView در سی شارپ

متون مربوط به زبان تخصصی استاد خیر اندیش Sms انگلیسی ارسال در تاريخ شنبه هجدهم اردیبهشت




برچسب :