دستور شرطی swich case
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
دستور شرطی swich case چیست؟
هر زمان که تمایل داشتید طبق شرایطی خاص مثل بررسیهای بعمل آمده یا ورودرس کاربر کدهای مختلفی را اجرا کنید، میتوانید از دستور swich case استفاده کنید.
برای اینکه راحت تر متوجه شوید دستور swich case چیست، برایتان یک مثال ساده میزنم، قصد دارم تا یک ماشین حساب بنویسم که دو عدد از کاربر به عنوان ورودی دریافت کند و طبق ورودی کاربر، یکی از چهار عمل ریاضی را بر روی آن دو عدد انجام دهد:
Console.Write("Enter number 1 : ");
double num1 = Convert.ToDouble(Console.ReadLine( ) ) ;
Console.Write("Enter number 2 : ");
double num2 = Convert.ToDouble(Console.ReadLine( ) ) ;
Console.WriteLine("Select your request \n 1. + \n 2. - \n 3. × \n 4. ÷" ) ;
Console.Write("Your request is : ");
char req = Convert.ToChar(Console.ReadLine( ) ) ;
swich (req)
{
Case '+' :
Console.WriteLine("{0} + {1} = {2}: , num1 , num2, num1 + num2 );
break ;
Case '-' :
Console.WriteLine("{0} - {1} = {2}: , num1 , num2, num1 - num2 );
break ;
Case '×' :
Console.WriteLine("{0} × {1} = {2}: , num1 , num2, num1 × num2 );
break ;
Case '÷' :
Console.WriteLine("{0} ÷ {1} = {2}: , num1 , num2, num1 ÷ num2 );
break ;
}
همانطور که در مثال فوق مشاهده میکنید، ابتدا دو ظرف از نوع double به علت آنکه نمیدانیم عدد ورودی کاربر صحیح است یا اعشاری تعریف کرده تا پس از دریافت ورودی در آن ظروف ذخیره کنیم.
سپس از کاربر سوال میکنیم که میخواهی کدام عمل ریاضی را بر روی این دو عدد انجام دهی که پاسخ کاربر را در ظرفی از نوع char با شناسه req ذخیره میکنیم.
حال به سراغ دستور swich میرویم و با نوشتن شناسه req در پرانتز ورودی دستور swich، آن را متوجه میکنیم که قرار است بر اساس مقدار داخل ظرف req، یک کار را انجام دهد.
نکته اول: مقادیر مورد نظر شما که در ظرف req ذخیره شدهاند، باید جلوی کلمه کلیدی case نوشته شوند.
نکته دوم: مقادیر باید همگی از یک نوع باشند، یا شبیه به مثال همگی از جنس string یا همگی از جنس int یا همگی از جنس char و …، درنتیجه نمیتوانیم مقادیر مختلفی به هر Case بدهیم.
نکته سوم: پس از اتمام کدهای هر case، میبایست کلمه کلیدی break را بنویسید تا کامپایلر هر زمان که به آن رسید، به طور کلی از swich case خارج شود.
نکته چهارم: در پرانتز جلوی swich به عنوان ورودی باید نام متغیری که ورودی کاربر را در آن ذخیره میکنید بنویسید.
نکته پنجم: بلاک یا همان محدوده کدهای هر Case از کاراکتر دونقطه جلوی case شروع و تا قبل از کلمه Case بعدی میباشد.
نکته ششم: میتوانید برای چندینCase، تنها از یک محدوده بلاک استفاده کنید، برای این منظور کافی است تا دستورات case را پشت سر هم بنویسید:
Console.Write("Enter Your Char: ");
char ch = Convert.ToChar(Console.ReadLine());
swich (req)
{
Case 'A' :
Case 'a' :
// your code
break ;
Case 'b' :
// your code
break ;
Case 'B' :
// your code
break ;
}
همانطور که در مثال بالا مشاهده میکنید، ما هر دو مقدار A بزرگ و a کوچک را پشت هم نوشته و تنها یک بلاک کد در نظر گرفتیم. در نتیجه اگر کاربر ورودی را A و یا a بدهد، فرقی نکرده و کدهای قبل از break اجرا خواهند شد.
نکته هفتم: درصورتی که تمایل داشتید تا باتوجه به ورودی کاربر که در مقادیر جلوی case ها مشخص نکردهاید، سیستم کدهای خاصی را اجرا کنید، میتوانید از دستور default استفاده کنید.
Console.Write("Enter Your Char: ");
char ch = Convert.ToChar(Console.ReadLine());
swich (req)
{
Case 'A' :
Case 'a' :
// your code
break ;
Case 'b' :
// your code
break ;
default :
// your code
break ;
}
در مثال بالا اگر کاربر ورودیای غیر از A و a و b وارد کند، سیستم وارد بلاک case ها نشده و کدهای داخل بلاک default را اجرا میکند.
نکته هشتم: برای دستور default هم مانند دیگر Case ها باید در انتهای محدوده بلاک، کلمه break را درج کنید.
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.