(برنامه نویسی سی شارپ) آموزش کار با دستور Switch در #C (مهندسی برق _ الکترونیک)
پژوهشگر و نویسنده: دکتر ( افشین رشید )
نکته: دستور Switch همانند مجموعه ای از دستورات پشت سر هم if عمل می کند. دستور Switch در واقع لیستی از حالت های ممکن است که برای هر حالت یک دستور یا کدی جهت اجرا پیش بینی شده است.
این دستور همچنین یک حالت default یا پیش فرضی دارد که در صورتی که هیچ یک از حالت آن true نباشد، اجرا خواهد شد. یک دستور ساده Switch ساختاری همانند کد مثال زیر دارد :
مقدار شناسه یا (identifier) مقدار متغیری که می خواهیم دستور Switch بر حسب آن عمل کند را پس از واژه کلیدی Switch قرار می دهیم. سپس لیستی از انواع حالت های مختلف برای آن مقدار توسط هر دستور (case) مشخص شده و مقدار شناسه با مقدار هر case مقایسه می شود. اگر مقدار شناسه با مقدار هر کدام برابر نبود، دستورات بخش پیش فرض default اجرا می شود.اگر دقت کرده باشید، در پایان هر case یک دستور break قرار داده شده است. اگر مقدار یک case با مقدار شناسه دستور Switch برابر شود، دستورات آن case اجرا شده و اگر در انتهای case دستور break وجود نداشته باشد، دستورات case های بعدی نیز اجرا خواهد شد. به عبارت دیگر، دستور break ، باعث توقف روند اجرای دستورات Switch شده و برنامه به خط کد بعد از Switch می فرستد.باید در نوشتن دستور break دقت لازم را به عمل آورید نوشتن آن می تواند کل برنامه را دچار اختلال کنید.هنگامی که هم یک تابع را در دستورات یک case تعیین می کنید، می توانید با استفاده از return خروجی تابع را به عنوان خروجی Switch برگردانید و از یک متغیر عددی integer به عنوان شناسه دستور Switch استفاده کرده ایم، اما این شناسه می تواند از نوع متنی String و یا هر نوع داده ای دیگر زبان #C باشد.در مثال زیر، ابتدا یک مقدار را به عنوان ورودی از کار برگررفته ایم، سپس آن را به عنوان یک متغیر متنی String به دستور Switch ارسال نموده ایم.
یک دستور Switch بر مبنای آن طراحی شده است. برای سهولت کار کاربر، توسط دستور ToLower ، کاراکترهای ورودی کاربر را به حروف کوچک تبدیل کرده ایم تا در هنگام مقایسه با مقادیر Case ها، فرقی بین مقدار وارد شده برای حروف بزرگ و کوچک وجود نداشته باشد. اما بدون وجود دستور default در Switch ،اگر کاربر فوق مقداری غیر از مقادیر تعیین شده برای case ها وارد نماید، برنامه هیچ خروجی نخواهد داشت.
پژوهشگر و نویسنده: دکتر ( افشین رشید )