استفاده از دستور switch در متلب
شما می توانید با استفاده از عبارت شرطی if...elseif هر تعداد شرط که نیاز دارید را ایجاد کنید. اما یک راه خوب دیگر نیز برای انجام این کار وجود دارد. عبارت شرطی switch به شما امکان می دهد تا به راحتی از بین چند گزینه، یکی را انتخاب کنید به طوری که کدهای نوشته شده خوانا باشند و تایپ کردن آنها سریع تر باشد. اساساً نتیجه ی به دست آمده با استفاده از دستور switch با نتیجه ای که از دستورهای if...elseif حاصل می شود، یکسان خواهد بود اما روش به دست آوردن خروجی متفاوت است.
گام های زیر، نحوه ی کار با دستور switch را به شما نشان می دهند. شما همچنین می توانید این تابع را در فایل SimpleSwitch.m که برای دانلود قرار داده شده است، مشاهده نمایید.
1. بر روی علامت مثلثی شکل که در زیر دکمه ی New در تب Home از منوی متلب قرار دارد کلیک کنید و از لیستی که ظاهر می شود، گزینه ی Function را انتخاب کنید، خواهید دید که پنجره ی Editor نمایش داده می شود.(به عکس 10.1 توجه کنید).
2. عبارت output_args را حذف کنید.
این مثال هیچ آرگومان خروجی نخواهد داشت اما به یک آرگومان ورودی نیاز دارد.
3. نام تابع را از Untitled به SimpleSwitch تغییر دهید.
نام تابع نخستین، باید با نام فایل مورد نظر تطابق داشته باشد.
4. عبارت input_args را حذف کنید و به جای آن عبارت Value را بنویسید.
تابع ما یک مقدار را برای استفاده در فرآیند تصمیم گیری از فراخواننده ی خود، دریافت خواهد نمود.
5. کدهای زیر را در تابع مورد نظر، بین کامنت ها و کلمه ی end قرار دهید.
این کد، به طور مشخص مقدار قرار گرفته در متغیر Value را با مقادیر مشخص شده، مقایسه می کند. هنگامی که متغیر Value با یکی از مقدارهای ارائه شده تطابق داشته باشد، یک پیغام متناسب نمایش داده می شود. در صورتی که مقدار ورودی با هیچ یک از مقدارهای درون عبارت شرطی تطابق نداشته باشد، دستور otherwise به میدان می آید. این دستور در مواقعی به کار می آید که مقدار ورودی با هیچ یک از مقادیر ارائه شده، تطابق نداشته باشد. می توانید از این دستور استفاده کنید تا یک پیغام را به کاربر نشان دهد و از او بخواهد تا مقدار مناسبی را وارد کند.
6. بر روی Save کلیک کنید.
خواهید دید که کادر محاوره ای Save As نمایش می یابد و از شما می خواهد که یک مکان را برای ذخیره سازی انتخاب کنید( به عکس 10.2 توجه کنید).
7. اکنون بر روی دکمه ی save کلیک کنید.
مشاهده می کنید که فایل تابع مورد نظر در هارد ذخیره می شود.
8. در پنجره ی Command(خط فرمان)، عبارت (SimpleSwitch(1 را تایپ کنید و سپس کلید Enter را فشار دهید.
خروجی زیر را مشاهده خواهید نمود:
9. عبارت (SimpleSwitch(2 را در پنجره ی Command وارد کنید و کلید Enter را فشار دهید.
خروجی زیر را مشاهده خواهید نمود:
10. عبارت (SimpleSwitch(3 را در پنجره ی Command وارد کنید و کلید Enter را فشار دهید.
خروجی به صورت زیر خواهد بود:
11. عبارت (SimpleSwitch(4 را در پنجره ی Command تایپ کنید و کلید Enter را فشار دهید.
خروجی زیر را مشاهده خواهید نمود:
تفاوت دستور switch با دیگر دستورات
دستور switch یک روش خلاصه است که از آن برای تصمیم گیری های خاص استفاده می شود. شما نمی توانید با استفاده از دستور switch، تصمیم گیری های کلی انجام دهید. مثلا نمی توانید مشخص کنید که آیا یک مقدار کوچکتر از مقدار دیگری است یا نه. تنها راهی که در دستور switch یک تطابق اتفاق می افتد، برابر بودن یک مقدار با مقداری دیگر در این دستور است. مزیت های استفاده از دستور switch عبارتند از:
- با استفاده از دستور switch، کدهای شما نسبت به استفاده از دستور if...elseif کوتاه تر خواهند شد.
- دیگران بهتر قادر خواهند بود تا کدهای شما را درک کنند. زیرا این کدها خوانا و دقیق تر هستند.
- در دستور switch، کدها متمرکز تر خواهند شد و این خاصیت از مخلوط شدن کدها نسبت به دستور if...elseif جلوگیری می کند.
- کارایی اپلیکیشن بالا خواهد رفت زیرا دیگر با محدوده ای از اعداد سروکار نداریم.
- نوشته شده توسط احسان عباسی
- بازدید: 10486
دیدگاهها
سلام ببخشید چرا وقتی از بازه استفاده میکنم باگ داره. یعنی میزنم بی برابر 8 است و سویچ بی و کیس از 0 -10 و دیسپلی "اوکی" بعد میزنم ادروایز و دیسپلی "خوب" ولی باگش اینه که برای هر عدد چیزی که به ادروایز دادم چاپ میکنه. اعداد نمره فرض شده . ایا به ایم دلیل است که بازه انتخاب کرده ام؟ و باید با ایف بنویسم؟
سلام. از دستور if استفاده کنید.