ش | ی | د | س | چ | پ | ج |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
یکی دیگر از حلقه های مهم در متلب مربوط به حلقه ی while می باشد که ساختار کلی آن به صورت شکل زیر است:
در واقع این حلقه به ما کمک می کند تا زمانی که یک شرط برقرار است کارهایی صورت پذیرد و وقتی شرط برقرار نشد این عملیات انجام نگرفته و از حلقه خارج گردد.
مثال: می خواهیم با حلقه ی while یک عدد از ورودی بگیریم و فاکتوریل آن را محاسبه نماییم.
clear;
clc;
;(‘:n=input(‘yek adad vared konid
;f = n
while n > 1
; n = n-1
; f = f*n
end
([(disp([‘n! = ‘ num2str(f
یک عدد از ورودی به عنوان مثال ۱۰ گرفتیم و می بینید تا زمانی که عدد بزرگ تر از یک است حاصلضرب صورت می گیرد و همیشه عدد ورودی یک واحد کم می شود و در نهایت وقتی عدد ورودی کم شد و کم تر از ۱ شد از حلقه خارج می شود.
نتیجه برای عدد ۱۰
نکته: هر موقع جلوی while بنویسیم ۱ یعنی همیشه شرط برقرار است و ادامه بده. اصطلاحا به آن حلقه همیشه صحیح گفته می شود.
مثال: می خواهیم اعداد رندوم از متلب بگیریم و اگر این اعداد رندوم بزرگ تر از ۰.۵ شدند برنامه تمام شود.
از حلقه ی while استفاده می کنیم و از تابع rand متلب اعداد رندوم کوچکتر از یک می گیریم و تا زمانی که کوچکتر از یک باشند را نمایش می دهیم و اولین عددی که بزرگ تر از ۰.۵ باشد از حلقه بیرون می آییم.
نکته: بیرون آمدن از حلقه توسط دستور break انجام می گیرد.
;clear
;clc
;limit = 0.5
;s = 0
while 1
; tmp = rand
if tmp > limit
break
end
;((disp(num2str(tmp
end
البته این مثال برای هر بار اجرا کردن نتایج متفاوتی ارائه خواهد کرد چون تابع rand دست ما نیست و هر لحظه یک مقداری ارائه می کند که در قسمت توابع در متلب توضیح داده شده اس