حلقه ها در MATLAB (بخش دوم)
![](https://zerotohero.ir/wp-content/uploads/2018/07/loop-matlab2-1.jpg)
همانطور که در بخش اول گفته شد، حلقه for برای مسئله هایی به کار می رود که دارای تعداد تکرار مشخص باشند. در حالی که حلقه while برای مسئله هایی که دارای شرط توقف هستند، مانند مسائل همگرایی، استفاده می شود.
حلقه while
این حلقه برای تعداد تکرارهای غیر مشخص استفاده میشود.
ساختار این حلقه شامل 3 بخش میباشد،
1. شرط حلقه
2. عملیات حلقه
3. پایان حلقه
1.شرط حلقه
برای نوشتن حلقه while، ابتدا واژه while را می نویسیم. با فاصله (کلید space) جدا میکنیم، رنگ نوشته آبی می شود. سپس، شرط مورد نظر را روبروی آن می نویسیم. شرط می تواند شامل یک شرط و یا چند شرط باشد.
پیش از حلقه while باید متغیر شرط حلقه معرفی شود. برای مثال اگر بخواهیم برای متغیر a شرطی تعیین کنیم که تا زمانی حلقه ادامه پیدا کند که a بزرگتر از صفر باشد، به صورت زیر نوشته می شود:
اما در برخی از مواقع می خواهیم شرطی که برای حلقه می نویسیم شامل چندین مورد باشد، برای مثال می خواهیم تا زمانی که متغیر a بین اعداد 1 و 4 یا برابر با مقدار 6 است حلقه ادامه پیدا کند. شرط حلقه صورت زیر می شود:
توجه داشته باشید که برای برابر بودن از دو تا علامت مساوی (==) باید استفاده کنید.
در خطوط بعد عملیات حلقه نوشته می شود.
2.عملیات حلقه
در این بخش هرگونه عملیات ریاضی و منطقی مورد نیاز کاربر وارد می شود. توجه داشته باشید که متغیر موجود در شرط حلقه (در مثال ما a) باید در عملیات حلقه ذکر شود تا به شرط توقف برسیم. برای مثال می خواهیم برنامه ای بنویسیم که هر دفعه متغیر a را در حلقه دو برابر کند تا زمانی که کوچکتر از 4 باشد.
برای اطلاع از تعداد تکرار حلقه می توان از یک شمارنده استفاده کرد. در مثال های بعد به آن می پردازیم.
3.پایان حلقه
اکنون برای اتمام end را می نویسیم و پس از آن متغیر a نهایی را نمایش می دهیم. به این صورت:
کد اجرا شده ی فوق به این شکل می باشد:
a=1; while a>0 && a<4 || a==6 a=2*a; end disp(a)
در حلقه while نیز مانند حلقه for (همانطور که در بخش اول گفته شد) باید توجه شود که کد با گزینه smart indent مرتب شده باشد و شروع حلقه با end خود در یک راستا باشد.
مثال 2: برنامه ای بنویسید که تعداد ارقام یک عدد چند رقمی را بیابد.
clc clear a=input('Please enter you number: '); i=0; while a>1 i=i+1; a=a/10 end i
در مثال فوق دیده می شود که پس از انجام آخرین تقسیم مقدار a کمتر از 1 شده و شرط حلقه دیگر برقرار نیست و حلقه تمام می شود.
برخی مواقع برای شرط حلقه از یک متغیر کمکی استفاده می شود. در مثال 3 به آن می پردازیم.
مثال 3: برنامه ای بنویسید که سرعت رشد دو تابع را تا 200 بررسی کند.
clc clear a(1)=3; b(1)=5; p=0; i=2; while p==0 a(i)=a(i-1)^2; b(i)=b(i-1)^1.5; if a(i)>200 && b(i)<200 p=1; disp('a has more growth rate') elseif b(i)>200 && a(i)<200 p=2; disp('b has more growth rate') elseif a(i)>200 && b(i)>200 p=3; disp('They have the same growth rate') end i=i+1; end a b
در برنامه فوق رشد 3 به توان 2 و 5 به توان 1.5 بررسی شد. پاسخ برنامه پس از اجرا به صورت زیر می باشد.
در مثال 3 در شرط حلقه از متغیر کمکی (p) استفاده شد. متغیری که عملیات ریاضی بر روی آن انجام نگرفته است.
در مثال های مذکور استفاده از حلقه while آموزش داده شد. چند نمونه شرط متفاوت بیان شد. اما روش های دیگری برای توقف حلقه وجود دارد. برای مثال استفاده از دستورات خروج، مانند break. در ادامه به دستوارت خروج از حلقه می پردازیم. این دستوارت برای هر دو حلقه های for و while کاربرد دارد.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.