آموزش حلقه while در سی شارپ با بیانی ساده
در دنیای برنامهنویسی، حلقهها یکی از اجزای مهم و کاربردی هستند که به شما امکان میدهند یک قطعه کد را چندین بار اجرا کنید. یکی از این حلقهها، حلقه while است که در زبان برنامهنویسی سی شارپ (C#) کاربرد زیادی دارد. اگر شما هم به دنبال یادگیری این حلقه هستید، جای درستی آمدهاید! در این مقاله، به صورت کامل و به زبان ساده، حلقه while در سی شارپ را بررسی میکنیم.
کاربرد حلقه while در سی شارپ چیست؟
حلقه while در میان حلقه های سی شارپ زمانی استفاده میشود که بخواهید یک بلوک کد را تا زمانی که یک شرط خاص صحیح است، بارها و بارها اجرا کنید. مثلاً تصور کنید میخواهید یک برنامه بنویسید که اعداد ۱ تا ۱۰ را چاپ کند. حلقه while به شما اجازه میدهد این کار را به راحتی انجام دهید.
در ادامه این مطلب اطلاعاتی کامل و جامع از این نوع حلقه تکرار در شی شارپ ارائه خواهد شد.
سینتکس حلقه while در سی شارپ
برای استفاده از حلقه while در سی شارپ، ابتدا باید شرطی را مشخص کنید که بر اساس آن حلقه اجرا شود. سپس بلوک کدی را که باید تکرار شود، داخل بدنه حلقه قرار میدهید. سینتکس کلی حلقه while به صورت زیر است:
while (شرط) { // بلوک کد که باید تکرار شود }
همچنین فلوچارت حلقه while در زبان سی شارپ به صورت زیر است:
مثال ساده از حلقه while در C#
فرض کنید میخواهید اعداد ۱ تا ۵ را با استفاده از حلقه while چاپ کنید. کد زیر این کار را انجام میدهد:
int i = 1; while (i <= 5) { Console.WriteLine(i); i++; }
در این مثال، متغیر i با مقدار اولیه ۱ تعریف شده است. حلقه while تا زمانی که مقدار i کمتر یا مساوی ۵ باشد، ادامه پیدا میکند. در هر بار اجرای حلقه، مقدار i چاپ میشود و سپس مقدار آن یک واحد افزایش مییابد.
پیشنهاد مطالعه: آموزش آرایه ها در سی شارپ – راهنمای جامع به زبان ساده
چرا از حلقه while استفاده کنیم؟
شاید بپرسید چرا از حلقه while استفاده کنیم وقتی حلقههای دیگری مثل for وجود دارند؟ پاسخ ساده است: حلقه while زمانی مفید است که ندانید دقیقاً چند بار باید حلقه اجرا شود. مثلاً زمانی که میخواهید یک ورودی از کاربر بگیرید و تا زمانی که ورودی معتبر نباشد، از کاربر درخواست کنید مجدداً ورودی را وارد کند.
مثال کاربردی از حلقه while در سی شارپ
فرض کنید میخواهید برنامهای بنویسید که از کاربر بخواهد یک عدد مثبت وارد کند و تا زمانی که عدد منفی وارد میشود، از او درخواست تکرار کند:
int number; do { Console.Write("یک عدد مثبت وارد کنید: "); number = Convert.ToInt32(Console.ReadLine()); } while (number < 0); Console.WriteLine("عدد مثبت شما: " + number);
در این مثال، با استفاده از یک حلقه do-while، برنامه ابتدا از کاربر عدد را میگیرد و سپس شرط را بررسی میکند. اگر عدد منفی باشد، حلقه تکرار میشود.
نکات مهم در استفاده از حلقه while در C#
- حلقههای بینهایت: اگر شرط حلقه while هیچگاه نادرست نشود، حلقه به صورت بینهایت اجرا میشود که میتواند منجر به مشکلات جدی شود. حتماً مطمئن شوید که شرط حلقه در نهایت نادرست میشود.
- بهروزرسانی شرط: حتماً در داخل بدنه حلقه، متغیرهای مربوط به شرط را بهروز کنید تا از حلقه بینهایت جلوگیری شود.
- کارایی: حلقه while ممکن است در برخی موارد کارایی بهتری نسبت به حلقههای دیگر داشته باشد، به ویژه زمانی که تعداد تکرارها مشخص نیست.
نمونه سوال حلقه while در سی شارپ
برای تمرین بیشتر، چند نمونه سوال برای شما آماده کردهایم تا با استفاده از حلقه while آنها را حل کنید:
- محاسبه مجموع اعداد مثبت: برنامهای بنویسید که از کاربر اعداد مثبت دریافت کند و مجموع آنها را محاسبه کند. دریافت اعداد تا زمانی ادامه یابد که عدد صفر یا منفی وارد شود.
- چاپ اعداد زوج: برنامهای بنویسید که اعداد زوج بین ۱ تا ۲۰ را چاپ کند.
- محاسبه فاکتوریل: برنامهای بنویسید که فاکتوریل یک عدد را با استفاده از حلقه while محاسبه کند.
- شمارش اعداد خاص: برنامهای بنویسید که از کاربر چندین عدد دریافت کند و تعداد اعدادی که بزرگتر از ۵۰ هستند را بشمارد.
- معکوس کردن رشته: برنامهای بنویسید که یک رشته را از کاربر بگیرد و با استفاده از حلقه while، آن را معکوس کند و چاپ کند.
پیشنهاد مطالعه: آموزش RabbitMQ در سی شارپ: راهنمای کامل و کاربردی
سناریوهای استفاده از حلقه وایل در سی شارپ
حلقه while یکی از ابزارهای پرکاربرد در برنامهنویسی است که به شما اجازه میدهد یک قطعه کد را تا زمانی که شرط خاصی برقرار باشد، تکرار کنید. در اینجا چندین سناریو مختلف برای استفاده از حلقه while در سی شارپ را معرفی میکنیم و برای هر کدام مثالی ارائه میدهیم.
- تکرار عملیات تا زمانی که شرطی برقرار باشد
مثال: دریافت عدد مثبت از کاربر
int number; do { Console.Write("یک عدد مثبت وارد کنید: "); number = Convert.ToInt32(Console.ReadLine()); } while (number <= 0); Console.WriteLine("عدد مثبت شما: " + number);
در این مثال، برنامه از کاربر درخواست میکند تا یک عدد مثبت وارد کند و تا زمانی که عدد وارد شده منفی یا صفر باشد، این درخواست تکرار میشود.
- تکرار تا زمانی که کاربر خروجی مورد نظر را وارد کند
مثال: تکرار ورود رمز عبور تا زمانی که درست وارد شود
string password; do { Console.Write("رمز عبور خود را وارد کنید: "); password = Console.ReadLine(); } while (password != "1234"); Console.WriteLine("رمز عبور صحیح است!");
در این مثال، برنامه از کاربر رمز عبور میخواهد و تا زمانی که رمز عبور وارد شده درست نباشد، این درخواست تکرار میشود.
- خواندن دادهها از یک منبع تا زمانی که دادهای باقی مانده است
مثال: خواندن اعداد از فایل تا زمانی که پایان فایل نرسیده است
using (StreamReader sr = new StreamReader("numbers.txt")) { string line; while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } }
در این مثال، برنامه تا زمانی که خطوطی در فایل وجود داشته باشد، آنها را خوانده و چاپ میکند.
- اجرای عملیات تا زمانی که شرط پیچیدهای برقرار باشد
مثال: محاسبه تعداد ارقام یک عدد
int number = 12345; int count = 0; while (number != 0) { number /= 10; count++; } Console.WriteLine("تعداد ارقام: " + count);
در این مثال، برنامه تعداد ارقام یک عدد را محاسبه میکند. تا زمانی که عدد صفر نشده است، برنامه ادامه پیدا میکند و در هر تکرار یک رقم را حذف میکند.
- اجرای عملیات تا زمانی که کاربر تصمیم به خروج بگیرد
مثال: منوی تعاملی برای انجام عملیات مختلف
int choice; do { Console.WriteLine("1. گزینه اول"); Console.WriteLine("2. گزینه دوم"); Console.WriteLine("3. خروج"); Console.Write("انتخاب کنید: "); choice = Convert.ToInt32(Console.ReadLine()); switch (choice) { case 1: Console.WriteLine("گزینه اول انتخاب شد."); break; case 2: Console.WriteLine("گزینه دوم انتخاب شد."); break; case 3: Console.WriteLine("خروج..."); break; default: Console.WriteLine("انتخاب نامعتبر، دوباره تلاش کنید."); break; } } while (choice != 3);
در این مثال، برنامه یک منوی تعاملی را نمایش میدهد و تا زمانی که کاربر گزینه خروج را انتخاب نکند، منو را تکرار میکند.
- محاسبه مجموع یا میانگین اعداد تا زمانی که ورودی معتبر است
مثال: محاسبه مجموع اعداد وارد شده توسط کاربر
int sum = 0; int number; Console.WriteLine("برای خاتمه عدد صفر را وارد کنید."); while (true) { Console.Write("یک عدد وارد کنید: "); number = Convert.ToInt32(Console.ReadLine()); if (number == 0) break; sum += number; } Console.WriteLine("مجموع اعداد وارد شده: " + sum);
در این مثال، برنامه از کاربر اعداد مختلفی دریافت میکند و مجموع آنها را محاسبه میکند. زمانی که کاربر عدد صفر را وارد کند، حلقه خاتمه مییابد.
حلقه while در سی شارپ یکی از ابزارهای قدرتمند برای تکرار عملیات مختلف است. با استفاده از این حلقه میتوانید کد خود را سادهتر و کارآمدتر کنید. امیدوارم این مثالها به شما در درک بهتر کاربردهای حلقه while کمک کرده باشد.
پرسشهای متداول
توجه به چند پرسش و پاسخ زیر در رابطه با حلقه وایل در سی شارپ اهمیت زیادی دارد:
- حلقه while چه زمانی استفاده میشود؟ حلقه while زمانی استفاده میشود که بخواهید یک بلوک کد را تا زمانی که یک شرط خاص صحیح است، تکرار کنید.
- تفاوت حلقه while و for چیست؟ حلقه while زمانی مفید است که ندانید دقیقاً چند بار باید حلقه اجرا شود، در حالی که حلقه for معمولاً برای تکرارهای مشخص استفاده میشود.
- چگونه میتوان از حلقه بینهایت جلوگیری کرد؟ باید مطمئن شوید که شرط حلقه در نهایت نادرست میشود و متغیرهای مربوط به شرط را در داخل بدنه حلقه بهروز کنید.
- آیا حلقه while کارایی بیشتری نسبت به حلقه for دارد؟ در برخی موارد، به ویژه زمانی که تعداد تکرارها مشخص نیست، حلقه while ممکن است کارایی بهتری داشته باشد.
- چگونه میتوان با حلقه while ورودیهای کاربر را بررسی کرد؟ میتوانید از حلقه while برای درخواست ورودیهای معتبر از کاربر استفاده کنید و تا زمانی که ورودی معتبر نباشد، حلقه را تکرار کنید.
پیشنهاد مطالعه: آموزش LINQ در سی شارپ: همه چیزهایی که باید بدانید!
کلام پایانی
حلقه while یکی از ابزارهای قدرتمند در زبان برنامهنویسی سی شارپ است که به شما امکان میدهد کدهای خود را به صورت تکراری اجرا کنید. با استفاده از حلقه while در سی شارپ میتوانید برنامههای خود را بهینهتر و انعطافپذیرتر کنید. امیدوارم این آموزش به شما کمک کرده باشد تا بهتر با این حلقه آشنا شوید و بتوانید از آن در پروژههای خود استفاده کنید.
آیا شما هم به دنبال یادگیری برنامهنویسی سی شارپ هستید؟ میخواهید از صفر تا صد این زبان برنامهنویسی محبوب را یاد بگیرید و مهارتهای خود را ارتقا دهید؟ مکتب خونه دورههای جامع و کاربردی آموزش سی شارپ و آموزش برنامه نویسی را برای شما آماده کرده است!
این دورهها به شما کمک میکنند تا به صورت کاملاً عملی و پروژهمحور، مفاهیم پایه و پیشرفته سی شارپ را یاد بگیرید. از مبانی ابتدایی گرفته تا مباحث پیشرفته مثل حلقهها، توابع، شیءگرایی و … همه در این دورهها پوشش داده شدهاند. با شرکت در این دورهها، میتوانید برنامههای کاربردی بنویسید و وارد دنیای برنامهنویسی حرفهای شوید.
سلام بخواهیم فاکتوریل با حلقه while بنویسیم چجوری عه ؟
سلام بابک عزیز. این کد فاکتوریل را با حلقه وایل محاسبه میکند:
using System;
class Program
{
static void Main(string[] args)
{
// دریافت عدد از کاربر
Console.Write(“Enter a number: “);
int number = int.Parse(Console.ReadLine());
// متغیرهای اولیه
int factorial = 1;
int i = 1;
// محاسبه فاکتوریل با حلقه while
while (i <= number) { factorial *= i; i++; } // نمایش نتیجه Console.WriteLine("Factorial of " + number + " is: " + factorial); } }