C# Geeks (.NET)
334 subscribers
128 photos
1 video
98 links
Download Telegram
🔄 تکرار کد بدون تکرار! راهنمای کامل حلقه‌ها (Loops) در #C

چطور می‌تونیم یه کار رو صد بار انجام بدیم، بدون اینکه صد خط کد بنویسیم؟ با استفاده از حلقه‌ها (Loops)! حلقه‌ها ستون فقرات هر الگوریتم پیچیده‌ای هستن و به ما اجازه میدن یک بلوک کد رو بارها و بارها تکرار کنیم.

امروز با ۴ نوع اصلی حلقه در #C آشنا میشیم.

1️⃣ حلقه while: تا وقتی که...
این ساده‌ترین نوع حلقه‌ست. یه شرط bool رو بررسی می‌کنه و تا وقتی اون شرط true باشه، بلوک کد رو تکرار می‌کنه.

نکته کلیدی: شرط قبل از هر بار اجرای بدنه حلقه چک میشه. پس اگه شرط از اول false باشه، بدنه حلقه هیچوقت اجرا نمیشه.
int i = 0;
while (i < 3)
{
Console.Write(i); // 012
i++;
}


2️⃣ حلقه do-while: حداقل یک بار اجرا کن!
این حلقه خیلی شبیه while هست، با این تفاوت مهم که شرط رو بعد از اجرای بلوک کد چک می‌کنه.

نتیجه مهم: این یعنی تضمین میشه که بدنه حلقه حداقل یک بار اجرا بشه، حتی اگه شرط از اول false باشه.
int i = 0;
do
{
Console.Write(i); // 012
i++;
}
while (i < 3);


3️⃣ حلقه for: حلقه همه‌کاره و قدرتمند 🔢
این حلقه برای تکرارهایی که تعدادشون مشخصه، عالیه. سه بخش اصلی و قدرتمند داره:
for (بخش مقداردهی اولیه; بخش شرط; بخش گام تکرار)

مقداردهی اولیه: فقط یک بار، قبل از شروع حلقه اجرا میشه (معمولاً برای تعریف شمارنده).

شرط: قبل از هر بار تکرار، این شرط bool چک میشه.

گام تکرار: بعد از هر بار اجرای بدنه حلقه، این بخش اجرا میشه (معمولاً برای افزایش شمارنده).
for (int i = 0; i < 3; i++)
{
Console.Write(i); // 012
}


مثال پیشرفته (دنباله فیبوناچی):
// محاسبه ۱۰ عدد اول دنباله فیبوناچی
for (int i = 0, prevFib = 1, curFib = 1; i < 10; i++)
{
Console.WriteLine(prevFib);
int newFib = prevFib + curFib;
prevFib = curFib;
curFib = newFib;
}


نکته حرفه‌ای: شما می‌تونید هر کدوم از سه بخش for رو خالی بذارید. مثلاً for (;;) یه حلقه بی‌نهایته!

4️⃣ حلقه foreach: پیمایش کلکسیون‌ها به سبک مدرن
این مدرن‌ترین، خواناترین و امن‌ترین راه برای حرکت روی تمام اعضای یک مجموعه قابل پیمایش (مثل آرایه یا string) هست. دیگه نگران ایندکس و خطای IndexOutOfRangeException نیستید!
// پیمایش روی تمام کاراکترهای رشته "beer"
foreach (char c in "beer")
{
Console.WriteLine(c);
}
// خروجی:
// b
// e
// e
// r


🤔 حرف حساب و تجربه شما

هر کدوم از این حلقه‌ها ابزار مناسبی برای یه کار خاص هستن. انتخاب درست بینشون، کد شما رو تمیزتر و بهینه‌تر می‌کنه.

شما تو کدهاتون بیشتر از کدوم نوع حلقه استفاده می‌کنید؟ for یا foreach؟ سناریوی جالبی دارید که توش do-while بهترین انتخاب بوده باشه؟

خب، اینجا که نمیشه همه حرفا رو زد! 😉
ادامه‌ی بحث، سوالات، غر زدن‌ها و گپ و گفت‌های خودمونی، فقط تو گروه.
[C# Geeks Hangout]

🔖 هشتگ‌ها:
#CSharp #Programming #Developer #DotNet #ControlFlow #Loops #ForEach #ForLoop