در آموزش ساختارهای کنترل در متلب دیدیم که برای این که بتوانیم با استفاده از یک زبان برنامه نویسی هر برنامه دلخواه را بنویسیم، نیاز به وجود سه خصوصیت توالی، انشعاب و قابلیت تکرار داریم. همانطور که در آنجا هم گفته شد، ویژگی انشعاب می تواند با ایجاد چند گزینه برای حالت های مختلف، به ما در یک برنامه قدرت تصمیم گیری بدهد.
ویژگی انشعاب می تواند توسط دو دستور شرطی if یا switch در متلب پیاده شود. در آموزشی دیگر با دستور if در متلب و حالت های مختلف آن آشنا شدیم. در این آموزش قصد داریم دستور switch در متلب را معرفی کنیم و نحوه استفاده از آن را با استفاده از چندین مثال شرح دهیم.
ساختار دستور شرطی switch در متلب
در دستور switch می توانیم تعیین کنیم که به ازای حالت های مختلف یک متغیر، چه دستوراتی انجام بشود. تصویر زیر ساختار دستور switch در متلب را نشان می دهد.
در مقابل کلمه switch نام متغیر مد نظر نوشته می شود. در مقابل هر case مقداری را می نویسیم که اگر متغیر مد نظرمان با آن مقدار برابر بود، دستورات داخل آن case ایجاد می شود.
در انتها در قسمت otherwise تعیین می کنیم که اگر هیچ کدام از حالت ها برقرار نبود (متغیر برابر هیچ یک از case ها نبود) چه اتفاقی بیفتد.
اگر خوب متوجه نشدید، نگران نباشید و نگاهی به مثال زیر بیندازید.
مثال: می خواهیم برنامه ای بنویسیم که به شکل زیر عمل کند و با توجه به مقدار a مقدار b را تعیین نماید.
هر کدام از حالت های a توسط یکی از case ها مشخص می شود و حالت « در غیر این صورت » توسط بخش otherwise در ساختار switch در متلب مشخص می شود.
مثلا اگر در طول برنامه و قبل از شروع دستور switch مقدار a برابر 2 شده باشد، مقدار b برابر 7 خواهد شد.
نکته: در دستور switch در متلب صرفا امکان بررسی مساوی بودن متغیر با چند حالت وجود دارد. مثلا نمی توانیم شرط بزرگتر یا کوچکتر بودن یک متغیر را بررسی نماییم. این امکان در برخی از زبان های برنامه نویسی وجود دارد ولی در متلب وجود ندارد.
نکته: می توانیم برای متغیرهای غیر عددی هم از دستور switch استفاده کنیم. مثال زیر این موضوع را بررسی می کند.
مثال: برنامه زیر با توجه به نام شهر، کد های مختلفی را در متغیر a قرار می دهد:
نکته: استفاده از بخش otherwise در ساختار switch در متلب، اختیاری است. در مثال بالا مشاهده می کنید که از این بخش استفاده نشده و هیچ مشکلی هم ایجاد نشده است.
مثال: قصد داریم برنامه ای بنویسیم که یک عدد را از کاربر دریافت کند و آن را با اعداد مشخصی جمع کند.
ابتدا با استفاده از دستور input یک عدد را از کاربر دریافت می کنیم. متن داخل پرانتز دستور input برای کاربر نمایش داده می شود و سپس عدد وارد شده توسط کاربر در متغیر n ذخیره می شود.
نکته: بر خلاف برخی از زبان های برنامه نویسی دیگر که ممکن است با آنها آشنایی داشته باشید، در switch متلب نیازی به نوشتن کلمه break نیست.
یک قابلیت دیگر در ساختار switch در متلب این است که می توانیم برای هر case بیش از یک حالت در نظر بگیریم. یعنی تعریف کنیم که اگر متغیر مدنظرمان چند حالت متفاوت داشت، در همه حالات یک سری دستور خاص انجام شود. در این صورت باید همه حالات را در بین دو {} بنویسیم. به مثال زیر توجه کنید.
مثال: مثال اول این بخش را در نظر بگیرید. با کمی تغییر قصد داریم آن را به شکل زیر پیاده کنیم.
در این حالت جدید حالت های 1 و 2 نتیجه ای شبیه هم دارند و می توانیم کد را به شکل زیر بنویسیم:
توجه کنید که می توانیم حالت های 1 و 2 را جدا از هم و هر کدام را در یک case جدا بنویسیم ولی با شیوه ی بالا این کار ساده تر است.
امیدوارم این آموزش هم برای شما مفید بوده باشد. ابهامات خود را در پایین همین پست مطرح کنید تا در سریع ترین فرصت به شما پاسخ دهیم.