سی شارپ یکی از زبانهای برنامهنویسی پرکاربرد و قدرتمند است که قابلیتهای فراوانی برای توسعه انواع برنامهها ارائه میدهد. یکی از مسائلی که معمولاً در برنامهنویسی به آن برمیخوریم، دریافت چند ورودی در یک خط از کاربر است. این قابلیت در بسیاری از پروژهها کاربردی است، به ویژه زمانی که میخواهیم چندین مقدار را به طور همزمان از کاربر دریافت کنیم. در این مقاله، به شما آموزش میدهیم که چگونه میتوانید این کار را در سی شارپ به راحتی انجام دهید.
چرا دریافت چند ورودی در یک خط مهم است؟
در بسیاری از موارد، ممکن است لازم باشد چندین مقدار مرتبط را در یک خط دریافت کنید. به عنوان مثال، اگر بخواهید چند عدد از کاربر دریافت کنید و سپس آنها را پردازش کنید (مانند محاسبه میانگین یا مجموع)، بهترین روش این است که همه این اعداد را در یک خط بگیرید و سپس آنها را تجزیه و تحلیل کنید. این روش کدنویسی را بهینهتر و رابط کاربری برنامه را سادهتر میکند.
روشهای دریافت چند ورودی در یک خط در سی شارپ
۱. استفاده از متد ()Console.ReadLine و ()Split
روش اول و یکی از سادهترین روشها برای دریافت چند ورودی در یک خط، استفاده از متد ()Console.ReadLine به همراه ()Split است. این روش به شما اجازه میدهد که یک رشته از ورودی کاربر بگیرید و سپس آن را به قطعات جداگانه تبدیل کنید.
کد مثال:
Console.Write("Enter your numbers: ");
string input = Console.ReadLine(); // دریافت ورودی از کاربر
string[] numbers = input.Split(' '); // تفکیک رشته ورودی به قطعات جداگانه
// نمایش هر عدد جداگانه
foreach (string number in numbers)
{
Console.WriteLine(number);
}
توضیح کد:
برنامه ابتدا ورودی کاربر را به عنوان یک رشته دریافت میکند.
با استفاده از متد (' ')Split، رشته ورودی را با توجه به فضای خالی (فاصله بین اعداد) به بخشهای مختلف تقسیم میکند.
هر بخش از رشته، یک عدد است که در آرایه numbers ذخیره میشود و سپس نمایش داده میشود.
۲. استفاده از ()Console.ReadLine و ()Array.ConvertAll
در روش دوم، ما از متد ()Array.ConvertAll استفاده میکنیم تا ورودیهای کاربر را که به صورت رشته دریافت شدهاند، به اعداد تبدیل کنیم. این روش به ویژه زمانی مفید است که بخواهیم ورودیها را به عنوان اعداد صحیح یا اعداد اعشاری پردازش کنیم.
کد مثال:
Console.Write("Enter your numbers: ");
string input = Console.ReadLine(); // دریافت رشته از کاربر
int[] numbers = Array.ConvertAll(input.Split(' '), int.Parse); // تبدیل رشتهها به اعداد صحیح
// نمایش هر عدد
foreach (int number in numbers)
{
Console.WriteLine(number);
}
توضیح کد:
در این کد، پس از دریافت رشته ورودی و تقسیم آن به بخشهای مختلف با استفاده از ()Split, از ()Array.ConvertAll برای تبدیل هر بخش به عدد صحیح (int) استفاده میکنیم.
متد int.Parse به عنوان تابعی برای تبدیل هر رشته به عدد به کار میرود.
کاربردهای واقعی دریافت چند ورودی
۱. برنامه مدیریت نمرات دانشآموزان
فرض کنید در یک برنامه مدیریت نمرات، میخواهید نمرات دانشآموزان را در یک خط از کاربر دریافت کنید. این نمرات میتوانند در ادامه مورد پردازش قرار گیرند و مثلا میانگین یا بالاترین نمره محاسبه شود.
Console.Write("Enter the scores of students: ");
string input = Console.ReadLine();
double[] scores = Array.ConvertAll(input.Split(' '), double.Parse);
double average = scores.Average();
Console.WriteLine("The average score is: " + average);
۲. برنامه ثبت اطلاعات مشتریان
در یک سیستم ثبت اطلاعات مشتریان، ممکن است بخواهید چندین اطلاعات مانند نام، سن و شهر را در یک خط دریافت کنید و سپس آنها را پردازش کنید.
Console.Write("Enter name, age, and city: ");
string input = Console.ReadLine();
string[] customerData = input.Split(',');
string name = customerData[0];
int age = int.Parse(customerData[1]);
string city = customerData[2];
Console.WriteLine("Name: " + name + ", Age: " + age + ", City: " + city);
توضیح:
در این مثال، ورودیها از طریق کاما (,) جدا میشوند.
سپس هر ورودی به عنوان یک عنصر جداگانه در آرایه customerData ذخیره میشود.
نکات مهم:
خطایابی در ورودیهای نادرست: در هنگام استفاده از متد int.Parse یا double.Parse، اگر کاربر ورودی نامعتبری (مانند حروف به جای اعداد) وارد کند، برنامه با خطا مواجه خواهد شد. برای جلوگیری از این مشکل، میتوانید از متد TryParse استفاده کنید که به شما امکان میدهد بررسی کنید آیا تبدیل به درستی انجام شده است یا نه.
مثال با TryParse:
Console.Write("Enter your numbers: ");
string input = Console.ReadLine();
string[] inputs = input.Split(' ');
int[] numbers = new int[inputs.Length];
for (int i = 0; i < inputs.Length; i++)
{
if (int.TryParse(inputs[i], out numbers[i]))
{
Console.WriteLine($"Number {i + 1}: {numbers[i]}");
}
else
{
Console.WriteLine($"Invalid input for number {i + 1}");
}
}
دقت در جداکنندهها: هنگام استفاده از متد ()Split, توجه داشته باشید که جداکنندههای مختلف (مثل فاصله، کاما، نقطه ویرگول) میتوانند به عنوان جداکننده استفاده شوند. مطمئن شوید که نوع جداکنندهای که انتخاب کردهاید، با ورودیهای کاربر همخوانی دارد.
نتیجهگیری
دریافت چند ورودی در یک خط در سی شارپ، یکی از مهارتهای اساسی و پرکاربرد در برنامهنویسی است که به شما امکان میدهد ورودیهای کاربر را به شکل منظمتری دریافت و پردازش کنید. با استفاده از متدهایی مثل ()Console.ReadLine و ()Split یا حتی ()Array.ConvertAll, میتوانید به سادگی ورودیها را جدا کرده و آنها را به انواع دادهای مختلف تبدیل کنید.
با یادگیری این روشها، شما قادر خواهید بود که به طور کارا و کاربردی از ورودیهای کاربران در سی شارپ استفاده کنید. برای اکتشاف بیشتر در دنیای سی شارپ، به شرکت در دورههای آموزش سی شارپ باگتو پیشنهاد میکنیم. از یادگیری سی شارپ لذت ببرید!
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید