شرط ها در MATLAB – بخش دوم (دستور switch)
در بخش اول، دستور if گفته شد. عبارات شرط مختلفی مطرح شدند. اما برخی مواقع فقط به شرط برابر نیاز داریم. برای این مواقع ساده تر است که از دستور switch استفاده نماییم.
این دستور شرط از 5 بخش تشکیل شده است.
- شرط switch
- دستور شرط
- عبارت شرط
- عملیات شرط
- پایان شرط
1. شرط switch
در ابتدا خود واژه switch را می نویسیم. با فاصله (کلید space) جدا می کنیم، رنگ نوشته آبی می شود. سپس پارامتری که شرط مربوط به آن است نوشته می شود. برای مثال اگر بخواهیم تشخیص دهیم عدد a با 10 برابر هست یا نیست، به صورت زیر نوشته می شود.
توجه شود که پیش از شرط، پارامتر باید معرفی گردد.
2. دستور شرط
دستور شرط برای دستور switch شامل 2 دستور متفاوت می باشد. پس از نوشتن switch برای اعمال شرط اول، case را می نویسیم. دستور case می تواند چندین بار استفاده شود. برای شرط آخر از دستور otherwise استفاده می نماییم. case در واژه به معنای “مورد” و otherwise به معنی “در غیر این صورت” می باشد.
3. عبارت شرط
برای نوشتن عبارت شرط مقابل دستور شرط ابتدا case یا otherwise را می نویسیم. پس از آن پارامتر مقایسه شونده را می آوریم. نتیجه به صورت زیر می شود.
4. عملیات شرط
در این بخش هرگونه عملیات ریاضی و منطقی مورد نیاز کاربر وارد می شود. برای مثال می خواهیم متلب پیغام “بله” را نمایش دهد.
دستور otherwise را نیز می نویسیم. این بار می خواهیم متلب پیغام “خیر” را نمایش دهد.
5. پایان شرط
اکنون برای اتمام end را می نویسیم. کد نهایی به صورت زیر می شود.
نکته 1: روبروی otherwise هیچ گونه عبارت شرط نوشته نمی شود. چرا که آخرین دستور بوده و در ازای برقرار نبودن دستورات شرط قبل اجرا می شود.
نکته 2: برای عبارت شرط باید یک عدد یا پارمتر یک رشته (string) آورده شود. علامت کوچکتر، بزرگتر، مساوی، & یا | نیاز نیست. چرا که اساس دستور switch برابر بودن است. به صورت خودکار پارامتر را برابر قرار می دهد.
a=12; switch a case 10 disp('yes') otherwise disp('no') end
مثال های دستور switch
مثال 2: برنامه ای بنویسید که باقی مانده تقسیم عددی بر 3 را محاسبه کند. تعیین کند بر 3 بخش پذیر است یا خیر.
clc clear n=input('please enter a number= '); nm=floor(mod(n,3)); switch(nm) case 0 disp('yes') case {1,2} disp('no') end
در کد بالا با استفاده از دستور floor جزء صحیح باقیمانده تقسیم را گرفتیم. دستور mod برای محاسبه باقی مانده است. برای عبارت شرط اول عدد 0 را نوشتیم. برای عبارت دوم دو عدد 1 و 2 را در { } گذاشتیم. این طرز نوشتن به معنی عبارت شرط 1 یا 2 می باشد. اینگونه که اگر nm برابر با 1 یا 2 بود متلب پیغام “خیر” را نمایش دهد. بیشتر از 2 عدد را نیز می توان در { } قرار داد.
مثال 3: برنامه ای بنویسید که اسمی را دریافت کند و تعداد تکرار حرف دلخواهی را در آن بیابد. تعداد حروفی که برابر با حرف مورد نظر نبودند را نیز نمایش دهد.
clc clear a=input('please enter your name= ','s'); b=input('please enter the letter you want to find= ','s'); sum=0; not=0; for i=1:length(a) switch a(i) case b sum=sum+1; otherwise not=not+1; end end a b sum not
در مثال بالا دستور input را با کمی تغییر نوشتیم. علت اضافه شدن ‘s’, به آخر آن برای تبدیل اسم و حرف دریافتی به رشته می باشد. برای صدا زدن درایه های ماتریس از حلقه for استفاده کردیم. پارامتر sum برای تعداد حروف برابر با پارامتر b و not برای نابرابر می باشد.
در این مقاله دستور switch گفته شد. مثال های کاربردی آن حل شدند. در بخش سوم و نهایی، عبارات شرط خاص با دستورات آماده متلب مانند isvector و isnumeric آموزش داده خواهند شد.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.