قه های تکرار
حلقه های تکرار وقتی استفاده می شوند که می خواهیم دستورات مشخصی چندین بار اجرا شوند. به عبارت دیگر برای اجرای تکراری دستورات از حلقه ای تکرار استفاده می شود.
حلقه for
این حلقه بسیار ساده و در عین حال بسیار پر کاربرد است. ساختار خلاصه شده این دستور به صورت زیر است:
for counter = start to end
statements
next
الگوریتم حلقه for به صورت زیر است :
1. مقدار start را در counter جایگزین کن
2. اگر counter <= end انگاه وارد حلقه شو در غیر این صورت به خط اول بعد از next برو .
3. statements را اجرا کن
4. (کلمه کلیدی next ) یکی به counte اضافه کن و به مرحله 2 بازگرد.
از حلقه for وقتی استفاده می کنیم که می خواهیم دستوراتی را به تعداد دفعات معین تکرار کنیم. برای مثال اگر بخواهیم 10 تا از یک کارکتر را در یک textbox بنویسیم از حلقه for استفاده میکنیم .
dim i as integer
for i = 1 to 10
textbox1.text +="A"
next
عبارت textbox1.text +="A" معادل textbox1.text = textbox1 + "A" است .
پس از اجرای متن textbox1 ده کارکتر "A" اضافه می شود.
در اینجا ما از متغیر i هیچ استفاده ای نکردیم . متغیر شمارنده حلقه بسیار کارامد است در زیر تکه برنامه ای امده است که می تواند که می تواند عدد های یک تا ده را در یک جعبه متن بنویسد.
dim i as integer
for i = 1 to 10
textbox1.text += (i & " ")
next
در اینجا ابتدا متغیر i که شمارنده حلقه است برابر 1 می شود سپس بدنه حلقه اجرا می شودکه باعث می شود مقدار یک (با یک فاصله) به textbox1.text اضافه شود . پس از اجرای بدنه حلقه اجرای دستورات به خط nextمیرسد وi برابر 2 می شود از انجا که 2<=10 است بدنه حلقه بار دیگر اجرا می شود. این کار تا زمانی انجام می شود که i=10 شود در این مرحله پس از اینکه بدنه حلقه اجرا شد i=11 می شود و از انجا که 11<=10 نیست اجرای برنامه به اولین خط بعد از next منتقل می شود. و کار حلقه به پایان می رسد.
حلقه while
دومین حلقه تکرای که بررسی می کنیم حلقه تکرار while است حلقه while در مواردی به کار میرود که تعداد تکرار مشخص نیست و بدنه حلقه باید تا زمانی که شرط حلقه برقرار است اجرا شود :
while condition
statements
end while
الگوریتم حلقه while به صورت زیر است :
1. اگر شرط (condition) برقرار است وارد حلقه شو اگر نه از حلقه خارج شو .
2. دستورات را اجرا کن
3. برگرد به 1
توجه داشته باشید که در حلقه while ابتدا شرط حلقه برسی می شود و فقط در صورت درستی شرط برنامه بدنه حلقه را اجرا خواهد کرد. پس اگر از ابتدا شرط معتبر بر قرار نباشد بدنه هرگز اجرا نخواهد شد .
مثال : می خواهیم برنامه بنویسیم که عددی از کاربر بگیردو بگوید کوچکترین عددی که به 3 بخشپذیر و از عدد کاربر بزرگتر باشد چند است.
برای حل این مساله میتوانیم فرض کنیم جواب عدد x است و تا وقتی که x کوچکتر از عدد کاربر است ان را بعلاوه 3 کنیم و حاصل جمع را در خود x جایگزین کنیم . برای این کار نمیتوانیم از حلقه for استفاده کنیم چون تعداد تکرار مشخص نیست. پس از حلقه while استفاده می کنیم :
dim result as integer = 0
while result <= textbox1.text
result += 3
end while
label1.text = result
در صورتی که شرط حلقه while همیشه درست باشد برنامه هیچگاه از حلقه خارج نخواهد شد و به اصطلاح در یک حلقه بینهایت گرفتار خواهد شد:
while 1 < 2
end while
یا
while true
end while
دستر های exit for و exit while هر یک برای خروج ناگهانی از حلقه for یا while استفاده میشود .