در آموزش ساختارهای کنترل در متلب توضیح دادیم که یکی از نیازهایی که در هر زبان برنامه نویسی وجود دارد، نیاز به ایجاد انشعاب و شرط گذاری است. متلب هم این ویژگی را دارد. همان طور که گفتیم با استفاده از switch و if در متلب می توانیم شرط گذاری کنیم و از بین چند شاخه و گزینه، با توجه به شرط گذاشته شده، یکی را انتخاب نماییم. آموزش دستور switch در متلب را هم ببینید.)
در این قسمت قصد داریم به معرفی if بپردازیم. توجه داشته باشید که برای تسلط بر ساختارهای کنترل باید مثال های زیادی حل کنید. پس در کنار مطالعه متن این آموزش، از حل مثال هایی که آورده ایم هم غافل نشوید.
ساختار if در متلب
ساختار ساده استفاده از if در متلب به شکل زیر است:
در برابر if یک شرط قرار می گیرد. اگر شرط صحیح باشد، متلب وارد دستور if خواهد شد در غیر این صورت از روی دستورات داخل if پرش می کند و آنها را انجام نمی دهد.
همان طور که در تصویر هم مشخص است، در انتهای این ساختار کلمه end قرار دارد. این کلمه انتهای بخش if را مشخص می کند. در حقیقت اگر شرط if صحیح نبود، متلب دستورات داخل if را نادیده می گیرد و به اولین دستور پس از end پرش می کند. به مثال زیر توجه کنید:
مثال: می خواهیم برنامه ای بنویسم که در صورتی که مقدار متغیر x بزرگتر از 10 بود، آن را دو برابر کند و در غیر این صورت تغییری در آن ایجاد نکند.
شرط if را «بزرگ تر از 10 بودن x» تعریف می کنیم. اگر x بزرگ تر از 10 باشد، متلب وارد if می شود و مقدار x را دو برابر می کند. در غیر این صورت تغییری در x ایجاد نمی کند.
از آنجایی که 8 کوچک تر از 10 است، شرط if درست نمی باشد و متلب از روی کل دستورات مربوط به if پرش می کند و تغییری در مقدار x ایجاد نمی شود.
یک بار برای همیشه نحوه کار با help را در آموزش help متلب بخوانید.
نکته: همان طور که در مثال بالا هم می بینید نیازی نیست شرط مربوط به if داخل پرانتز قرار بگیرد. در برخی از زبان های برنامه نویسی این شرط باید حتما داخل پرانتز باشد.
استفاده از else if در متلب
تعریفی که از ساختار if در متلب داشتیم، مربوط به ساده ترین حالت آن می شد. اما ساختارهای دیگری هم برای استفاده از این دستور وجود دارد.
با استفاده از else if و else می توانیم از قابلیت های بسیار بیشتری برخودار شویم. البته این بخش ها اختیاری هستند و نیازی نیست که حتما به ساختار if اضافه شوند. ولی در بسیاری از مواقع به وجود آنها نیاز داریم.
ساختار کامل if در متلب به این صورت است:
با استفاده از این ساختار کامل می توانیم به جای یک شرط، چند شرط ایجاد کنیم. اگر شرط اول که در مقابل if قرار دارد صحیح بود، دستورات مربوط به آن اجرا می شود.
اگر شرط اول صحیح نبود متلب به سراغ بررسی شرط دوم که در مقابل else if قرار دارد می رود و در صورت صحیح بودن آن شرط دستورات مربوطه را اجرا می کند. اگر این شرط هم صحیح نبود، به سراغ شرط های else if های بعدی می رود تا اولین شرط درست را پیدا کند و دستورات آن را اجرا کند.
در انتها اگر هیچ کدام از شرط ها برقرار نبودند، متلب وارد دستورات else می شود و آنها را اجرا می کند.
به بیان دیگر دستورات هر یک از else if ها در صورت صحیح نبودن همه شروط else if های قبلی و صحیح بودن شرط else if فعلی انجام می شود.
توضیحات کمی طولانی شد. اجازه بدهید با استفاده از یک مثال این مفهوم را بهتر جا بیاندازم.
مثال: می خواهیم تابع چند ضابطه ای زیر را با استفاده از ساختار کامل if ایجاد کنیم.
توجه کنید که در این حالت چون بیش از یک شرط داریم، ناچاریم که از ساختار else if استفاده کنیم.
نکته: اگر بخواهیم همزمان چند شرط را برای ورود به if بررسی کنیم از عملگر and که به صورت && نمایش داده می شود استفاده می کنیم. یعنی باید چند شرط به صورت همزمان برقرار باشند تا متلب وارد دستورات if شود. بنابر این در این حالت اگر حتی یکی از شرط ها برقرار نباشد، دستورات if اجرا نمی شود.
به مثال زیر توجه کنید.
مثال: می خواهیم اگر متغیر a بین دو عدد 5 و 9 باشد، مقدار b برابر 1 شود. برای این کار باید شرطی بگذاریم که a همزمان کوچکتر از 9 و بزرگتر از 5 باشد. این دو شرط باید هر دو برقرار باشند پس از && استفاده می کنیم.
دستور switch تشابه زیادی به if دارد. حتما آموزش دستور switch در متلب را هم مطالعه کنید.
در این قسمت سعی کردیم مفهوم ساختار if را به صورت کامل برای شما شرح دهیم. برای تسلط بر استفاده از این ساختار، حتما برای خودتان مثال های زیادی را حل کنید. ما هم سعی می کنیم در آینده مجموعه ای از مثال های مفید را در سایت ویکی مکانیک ارائه دهیم.
با ما همراه باشید.
ببخشید سوالی داشتم
تفاوت اصلی حلقهwhile و if در متلب چیست؟
ممنون میشم پاسخ بدید