TAHA
10-29-2009, 12:27 AM
تو برنامه نويسي گاهي (شايدم زياد) پيش مياد كه بخوايم يه تيكه از كدمون رو تا وقتي كه ميخوايم تكرار كنيم
مثلا ساده ترين برنامه اي كه ميشه نوشت به اين صورته كه اگه بخوايم اعداد يك تا 10 رو چاپ كنيم در صورتي كه از
ساختار حلقه استفاده نشه بايد يه الگوريتمي مثل پايين داشته باشه
1 رو چاپ كن
2 رو چاپ كن
3 رو چاپ كن
.
.
.
.
و الي آخر
که اين برنامه حدودا ميشه 10 يا 12 سطر ولي اگه بخوايم از 1 تا 100 يا 1000 رو چاپ كنيم بايد برناممون 100 خط
داشته باشه كه اين 100 خط رو ميشه با يه حلقه تو 3 يا 4 خط خلاصه كرد
حلقه تکرار For:
از این حلقه برای تکرار عملیات خاصی به تعداد مشخص انجام می شود. يعني هموني كه بالا مثال زدم
شكل كلي :
کد
:
For Counter = Start_Value To End_Value [Step Step_Count]
بلاکی از یک یا چند دستور ویژوال بیسیک
Next [Counter]
Counter شمارنده حلقه
Start_Value مقدار اولیه شمارنده
End_Value مقدار پایانی شمارنده
ابتدا متغییر counter برابر Start_Value قرار می گیرد و دستورات یک بار اجرا می شوند سپس counter به اندازه
Step_Count افزایش یافته و دوباره دستورات اجرا می شوند و این عمل تا وقتی که به End_Value برسیم تکرار می
شود.
نکته:
اگر Step_Count ذکر نشود مقدار پیش فرض آن یک می باشد.
می توان Counter جلوی Next را ننوشت ولی به دلیل ناخوانایی برنامه در حلقه های تودرتو این کار توصیه نمی شود.
مثال:
کد:
Dim i, Sum As Integer
For i = 0 To 100
Sum = Sum + i
Next i
Text1.Text = Sum
در این مثال مجموع اعداد بین 0 تا 100 محاسبه شده و در آخر مقدار آن در جعبه متن قرار داده می شود.
کد:
Dim i, Sum As Integer
For i = 1 To 10 Step 2
Sum = Sum + i
Next i
Text1.Text = Sum
در این مثال مجموع اعداد فرد بین 1 تا 10 محاسبه می شود.
کد:
Dim i As Single
Dim Counter As Integer
For i = 5 To -5 Step -0.5
Counter = Counter + 1
Next
Text1.Text = Counter
در این مثال تعداد پیمایش اعداد بین 5 تا 5- با مقدار 0.5- شمارش می شود.
این مثال برای این آورده شده است که ببینید از اعداد منفی و اعشاری هم می توان در حلقه For استفاده کند.
با استفاده از دستور Exit For می توان قبل از موعد مقرر از حلقه خارج شد
.
مثال:
کد:
For i = 10 To 100
If (i Mod 7) = 0 Then Exit For
Next i
Text1.Text = "The first number is " & i
این مثال اولین عدد بخش پذیر بر 7 را بر می گرداند. هنگامی که عدد بر 7 بخش پذیر شود با دستور Exit For از حلقه
بیرون می آییم. (راستش يادم نيست MOD رو گفتيم يا نه ولي بهش ميرسم . Mod باقيمانده i رو بر 7 برميگردونه )
يه مثال ديگه (يه كم بزرگتر) :
کد:
For i = 0 To 100
If (i Mod 2) = 0 Then
Even = Even + 1
Else
Odd = Odd + 1
End If
Next i
Text1.Text = "Even numbers: " & Even & " Odd numbers: " & Oddاين برنامه هم تعداد اعداد زوج و فرد رو از 1 تا 100 ميشمره و تو text1 چاپ ميكنه
مثلا ساده ترين برنامه اي كه ميشه نوشت به اين صورته كه اگه بخوايم اعداد يك تا 10 رو چاپ كنيم در صورتي كه از
ساختار حلقه استفاده نشه بايد يه الگوريتمي مثل پايين داشته باشه
1 رو چاپ كن
2 رو چاپ كن
3 رو چاپ كن
.
.
.
.
و الي آخر
که اين برنامه حدودا ميشه 10 يا 12 سطر ولي اگه بخوايم از 1 تا 100 يا 1000 رو چاپ كنيم بايد برناممون 100 خط
داشته باشه كه اين 100 خط رو ميشه با يه حلقه تو 3 يا 4 خط خلاصه كرد
حلقه تکرار For:
از این حلقه برای تکرار عملیات خاصی به تعداد مشخص انجام می شود. يعني هموني كه بالا مثال زدم
شكل كلي :
کد
:
For Counter = Start_Value To End_Value [Step Step_Count]
بلاکی از یک یا چند دستور ویژوال بیسیک
Next [Counter]
Counter شمارنده حلقه
Start_Value مقدار اولیه شمارنده
End_Value مقدار پایانی شمارنده
ابتدا متغییر counter برابر Start_Value قرار می گیرد و دستورات یک بار اجرا می شوند سپس counter به اندازه
Step_Count افزایش یافته و دوباره دستورات اجرا می شوند و این عمل تا وقتی که به End_Value برسیم تکرار می
شود.
نکته:
اگر Step_Count ذکر نشود مقدار پیش فرض آن یک می باشد.
می توان Counter جلوی Next را ننوشت ولی به دلیل ناخوانایی برنامه در حلقه های تودرتو این کار توصیه نمی شود.
مثال:
کد:
Dim i, Sum As Integer
For i = 0 To 100
Sum = Sum + i
Next i
Text1.Text = Sum
در این مثال مجموع اعداد بین 0 تا 100 محاسبه شده و در آخر مقدار آن در جعبه متن قرار داده می شود.
کد:
Dim i, Sum As Integer
For i = 1 To 10 Step 2
Sum = Sum + i
Next i
Text1.Text = Sum
در این مثال مجموع اعداد فرد بین 1 تا 10 محاسبه می شود.
کد:
Dim i As Single
Dim Counter As Integer
For i = 5 To -5 Step -0.5
Counter = Counter + 1
Next
Text1.Text = Counter
در این مثال تعداد پیمایش اعداد بین 5 تا 5- با مقدار 0.5- شمارش می شود.
این مثال برای این آورده شده است که ببینید از اعداد منفی و اعشاری هم می توان در حلقه For استفاده کند.
با استفاده از دستور Exit For می توان قبل از موعد مقرر از حلقه خارج شد
.
مثال:
کد:
For i = 10 To 100
If (i Mod 7) = 0 Then Exit For
Next i
Text1.Text = "The first number is " & i
این مثال اولین عدد بخش پذیر بر 7 را بر می گرداند. هنگامی که عدد بر 7 بخش پذیر شود با دستور Exit For از حلقه
بیرون می آییم. (راستش يادم نيست MOD رو گفتيم يا نه ولي بهش ميرسم . Mod باقيمانده i رو بر 7 برميگردونه )
يه مثال ديگه (يه كم بزرگتر) :
کد:
For i = 0 To 100
If (i Mod 2) = 0 Then
Even = Even + 1
Else
Odd = Odd + 1
End If
Next i
Text1.Text = "Even numbers: " & Even & " Odd numbers: " & Oddاين برنامه هم تعداد اعداد زوج و فرد رو از 1 تا 100 ميشمره و تو text1 چاپ ميكنه