حلقه ها در سیشارپ
حلقهها در سیشارپ برای اجرای چندباره کد استفاده میشوند و شامل for، while، do while و foreach هستند.
حلقهها در سیشارپ (#C)
حلقهها یا Loopها در سیشارپ یکی از مهمترین ابزارهای کنترل جریان برنامه هستند.زمانی که لازم است یک دستور یا مجموعهای از دستورات چندین بار اجرا شود، بهجای نوشتن تکراری کد، میتوان از حلقهها استفاده کرد.
حلقه به ساختاری گفته میشود که امکان اجرای چندباره یک دستور یا بلوک کد را فراهم میکند.
تکرار میتواند بر اساس یک شرط، تعداد مشخصی از دفعات یا عناصر یک مجموعه انجام شود.
برای مثال، اگر بخواهیم اعداد 1 تا 100 را چاپ کنیم، نوشتن 100 دستور جداگانه منطقی نیست.
یک حلقه میتواند این کار را با چند خط کد انجام دهد.
طبق مستندات رسمی #C، دستورات for، foreach، while و do برای اجرای تکراری دستورات استفاده میشوند.
همچنین break برای خروج از حلقه و continue برای رفتن به تکرار بعدی کاربرد دارند.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
انواع حلقه در #C
چهار حلقه اصلی #C عبارتاند از:| حلقه | کاربرد اصلی |
| for | زمانی که تعداد یا محدوده تکرار مشخص است |
| while | زمانی که ادامه اجرای حلقه به یک شرط وابسته است |
| do while | زمانی که کد باید حداقل یک بار اجرا شود |
| foreach | پیمایش عناصر مجموعهها و کالکشنها |
حلقه for در سیشارپ
حلقه for یکی از پرکاربردترین حلقهها در #C است و معمولاً زمانی استفاده میشود که یک شمارنده داشته باشیم یا تعداد تکرارها قابل کنترل باشد.ساختار کلی:
for (initialization; condition; iterator)
{
// دستورات
}
این حلقه سه بخش اصلی دارد:
-
مقداردهی اولیه
-
شرط ادامه حلقه
-
تغییر شمارنده
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
خروجی:
1
2
3
4
5
در این مثال، متغیر i ابتدا مقدار 1 دارد. تا زمانی که شرط i <= 5 برقرار باشد، بدنه حلقه اجرا میشود و بعد از هر بار اجرا، مقدار i یک واحد افزایش پیدا میکند.
مستندات رسمی مایکروسافت نیز for را ساختاری معرفی میکنند که بخش مقداردهی را یک بار اجرا کرده و سپس تا زمانی که شرط Boolean برقرار است، بدنه را اجرا و عبارت تکرارکننده را پردازش میکند.
حلقه while در سیشارپ
حلقه while زمانی کاربرد دارد که بخواهیم تا زمانی که یک شرط برقرار است، بخشی از برنامه را اجرا کنیم.ساختار:
while (condition)
{
// دستورات
}
مثال:
int number = 1;
while (number <= 5)
{
Console.WriteLine(number);
number++;
}
خروجی:
1
2
3
4
5
در while ابتدا شرط بررسی میشود و تنها در صورت true بودن آن، بدنه حلقه اجرا خواهد شد.
بنابراین اگر شرط از ابتدا false باشد، ممکن است حلقه حتی یک بار هم اجرا نشود.
حلقه do while در سیشارپ
do while شبیه while است، اما یک تفاوت بسیار مهم دارد:بدنه حلقه در do while حداقل یک بار اجرا میشود.
ساختار:
do
{
// دستورات
}
while (condition);
مثال:
int number = 1;
do
{
Console.WriteLine(number);
number++;
}
while (number <= 5);
خروجی:
1
2
3
4
5
تفاوت اصلی while و do while در زمان بررسی شرط است. در while شرط قبل از اجرای بدنه بررسی میشود؛ اما در do while ابتدا بدنه اجرا شده و سپس شرط بررسی میشود. در نتیجه do while یک یا چند بار اجرا میشود، در حالی که while میتواند صفر بار اجرا شود.
حلقه foreach در سیشارپ
حلقه foreach برای پیمایش عناصر یک مجموعه بسیار کاربردی است.برای مثال، اگر یک آرایه داشته باشیم:
string[] names = { "Ali", "Sara", "Reza", "Mina" };
foreach (string name in names)
{
Console.WriteLine(name);
}
خروجی:
Ali
Sara
Reza
Mina
در این روش نیازی نیست خودمان یک شمارنده مانند i ایجاد کنیم. foreach عناصر مجموعه را یکی پس از دیگری در اختیار متغیر حلقه قرار میدهد.
foreach میتواند با انواع مختلفی از مجموعهها کار کند و حتی محدود به انواعی که مستقیماً IEnumerable را پیادهسازی میکنند نیست؛ نوع موردنظر میتواند الگوی مناسب GetEnumerator، Current و MoveNext را نیز فراهم کند.
حلقههای تو در تو در #C
گاهی لازم است یک حلقه داخل حلقه دیگری قرار بگیرد.به چنین ساختاری Nested Loop یا حلقه تو در تو گفته میشود.
مثال:
for (int i = 1; i <= 3; i++)
{
for (int j = 1; j <= 3; j++)
{
Console.WriteLine($"i = {i}, j = {j}");
}
}
در این حالت برای هر بار اجرای حلقه بیرونی، حلقه داخلی چند بار اجرا میشود.
دستور break در حلقههای #C
break برای خروج فوری از حلقه استفاده میشود.مثال:
for (int i = 1; i <= 10; i++)
{
if (i == 5)
{
break;
}
Console.WriteLine(i);
}
خروجی:
1
2
3
4
وقتی i به عدد 5 برسد، break اجرا شده و حلقه پایان پیدا میکند.
طبق مشخصات زبان C#، break کنترل برنامه را به انتهای حلقه منتقل میکند.
دستور continue در سیشارپ
continue باعث میشود اجرای تکرار فعلی متوقف شده و برنامه به تکرار بعدی حلقه برود.مثال:
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
continue;
}
Console.WriteLine(i);
}
خروجی:
1
3
5
7
9
در این مثال، وقتی عدد زوج باشد، continue اجرا شده و آن تکرار بدون اجرای Console.WriteLine ادامه پیدا میکند.
مستندات #C نیز continue را برای شروع تکرار بعدی نزدیکترین حلقه while، do، for یا foreach تعریف میکنند.
حلقه بینهایت در #C
اگر شرط حلقه هیچوقت false نشود، با یک حلقه بینهایت مواجه خواهیم شد.مثلاً:
while (true)
{
Console.WriteLine("برنامه در حال اجراست...");
}
یا:
for (;;)
{
Console.WriteLine("Loop");
}
البته حلقه بینهایت در همه شرایط اشتباه نیست.
در برخی برنامههای سرویسمحور یا پردازشهای دائمی، چنین ساختاری میتواند کاملاً عمدی باشد؛ اما باید راهی برای خروج، توقف یا مدیریت چرخه وجود داشته باشد.
مثال کاربردی؛ پیدا کردن یک عدد در آرایه
فرض کنید میخواهیم وجود عدد 50 را در آرایه بررسی کنیم:int[] numbers = { 10, 20, 30, 40, 50, 60 };
bool found = false;
foreach (int number in numbers)
{
if (number == 50)
{
found = true;
break;
}
}
Console.WriteLine(found ? "عدد پیدا شد" : "عدد پیدا نشد");
در این مثال، foreach عناصر آرایه را بررسی میکند و به محض پیدا شدن عدد موردنظر، break باعث خروج از حلقه میشود.
مثال کاربردی؛ محاسبه مجموع اعداد
میتوان با for مجموع اعداد یک آرایه را محاسبه کرد:int[] numbers = { 10, 20, 30, 40 };
int sum = 0;
for (int i = 0; i < numbers.Length; i++)
{
sum += numbers[i];
}
Console.WriteLine($"مجموع: {sum}");
خروجی:
مجموع: 100
همین کار با foreach نیز سادهتر قابل خواندن است:
int sum = 0;
foreach (int number in numbers)
{
sum += number;
}
Console.WriteLine($"مجموع: {sum}");
جمعبندی
حلقهها یکی از پایهایترین مفاهیم برنامهنویسی با #C هستند و تقریباً در هر پروژه واقعی با آنها سروکار خواهید داشت.اگر بخواهیم خلاصه کنیم:
- for برای تکرارهای شمارشی و زمانی که ساختار تکرار مشخص است مناسب است.
- while برای اجرای کد تا زمانی که یک شرط برقرار باشد کاربرد دارد.
- do while زمانی مفید است که بدنه حلقه باید حداقل یک بار اجرا شود.
- foreach برای پیمایش عناصر مجموعهها گزینهای خوانا و کاربردی است.
- break برای خروج از حلقه استفاده میشود.
- continue باعث عبور از تکرار فعلی و رفتن به تکرار بعدی میشود.
- در سناریوهای غیرهمزمان، await foreach امکان پیمایش جریانهای داده asynchronous را فراهم میکند.
ساختار و رفتار این دستورات در مستندات رسمی زبان #C نیز بهصورت دقیق تعریف شده است.



کاربران ما
شما هم نظرتون با ما دریاره “حلقه ها در سیشارپ” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید