خارج شدن از حلقه (for و while)، با دستور break ، در متلب (MATLAB)
زمانی که یک حلقه می سازیم (با دستور for یا while)، تعداد گام های حلقه مشخص است و به همان تعداد، دستورات حلقه اجرا می شوند. اما گاهی نیاز داریم که با به وجود آمدن یک شرایط خاص، تعیین کنیم که گام های باقیمانده حلقه، اجرا نشوند. برای این منظور، دستور break به کار می رود، یعنی وقتی متلب به دستور break در حلقه برسد، از حلقه خارج می شود و دیگر هیچ کدی از حلقه اجرا نخواهد شد.
اکنون می خوایم نحوه استفاده از دستور break در حلقه را شرح بدهیم. ابتدا فرض کنید که یک حلقه را با دستور for و به صورت معمولی بسازیم (این حلقه، تنها مقدار پارامتر حلقه را در خروجی چاپ می کند) :
close all
clc
for nn=1:7
disp(nn);
end
نتیجه :
2
3
4
5
6
7
اکنون می خواهیم تعیین کنیم که گام سوم به بعد از حلقه، اجرا نشود. بنابراین با دستور if چک می کنیم که هرگاه مقدار پارامتر حلقه (nn) برابر 3 بود، آنگاه دستور break اجرا شود تا از حلقه خارج شویم و دیگر هیچ کدی از حلقه اجرا نگردد :
close all
clc
for nn=1:7
if(nn==3)
break;
end
disp(nn);
end
نتیجه :
2
ممکن است این سوال پیش بیاید که اگر دو حلقه تو در تو داشته باشیم و آنگاه درون حلقه داخلی تر، دستور break اجرا شود، آیا تنها از حلقه داخلی تر خارج می شویم و یا اینکه از هر دو حلقه خارج خواهیم شد. پاسخ این است که تنها از حلقه داخلی تر خارج خواهیم شد. این پاسخ را با مثال زیر اثبات می کنیم :
دو حلقه تو در تو می سازیم :
close all
clc
for nn=1:7
disp(nn)
for mm=1:2
if(mm==2)
break;
end
disp('second loop');
end
end
نتیجه :
second loop
2
second loop
3
second loop
4
second loop
5
second loop
6
second loop
7
second loop
مشاهده می کنید که هر بار اجرای دستور break ، تنها باعث شده است که از حلقه داخلی تر (با پارامتر mm) خارج شویم، ولی حلقه خارجی تر (با پارامتر nn) همچنان اجرا شده است.
ممنون
عالی بود
ممکن است این سوال پیش بیاید که اگر دو حلقه تو در تو داشته باشیم و آنگاه درون حلقه داخلی تر، دستور break اجرا شود، آیا تنها از حلقه داخلی تر خارج می شویم
خدا خیرت بده متن شما دقیقا سوال من بود تا حالا اینقدر سریع جواب پیدا نکرده بودم
سلام وقت بخیر. ببخشید دستوری برای خروج از حلقه و برگشتن به خط خاصی از برنامه، در متلب وچود داره ؟ ممنون میشم راهنمایی کنید.