PDA

View Full Version : توضیح کامل حلقه



Mehrdad_Desiner
یک شنبه 05 فروردین 1386, 01:03 صبح
سلام
آقایون من تو آموزشگاهی که تحصیل میکنم ( با اینکه استادمون 2 بار توضیح داد ) هیچی از حلقه ها و کاربردشون ، متغیر شمارنده ، شرط حلقه و ... اصلا نفهمیدم .
اگه دوستان به من کمک کنند ،‌و منو کامل راهنمایی کنند ممنون میشم.
بای

CodeMasterX
یک شنبه 05 فروردین 1386, 01:52 صبح
تو ویژوال بیسیک 6 چند نوع حلقه داریم.

For...Next
Do...Loop
Do...Loop Until
Do...While
While...Wend
و حالقه ها دستی

منظورم از حلقه های دستی حلقه هایی هست که برنامه نویس خودش با استفاده از دستور GoTo میسازه.حالا از هر کدوم از حلقه ها یه مثال می زنم.


حلقه For...Next



Dim iCount As Integer

For iCount = 1 to 10
MsgBox iCount,vbInformation
Next iCount

که اینجا شمارنده حلقه متغیر iCount از نوع Integer هست.این حلقه از 1 تا 10 تکرار می شه و با تابع MsgBox مقدار فعلی متغیر شمارنده رو اعلام می کنه.شمارنده شما می تونه هز چیزی باشه:



For iCount = 1 To List1.ListCount
'Statements
Next iCount
تو حلقه های For...Next شما می تونی از Step هم استفاده کنی که به مقدار معین شده پرش می کنه:



For iCount = 1 To 10 Step 1
MsgBox iCount,vbInformation
Next iCount
این همون کد بالا هست با این فرق که یکی در میون کد حلقه رو اجرا می کنه (به دستور Step 1) دقت کن.و اگر بخوایی از مقداری کوچکتر به مقدار بزرگتر شمارش کنی باید Step رو بصورت منفی تعریف کنی:



For iCount = 10 To 1 Step -1
MsgBox iCount,vbInformation
Next iCount
نوشتن حلقه های تودرتو هم کار سختی نیست.کمی دقت کنی متوجه میشی.کد زیر رو ببین:



For i = 1 To 100
For j = 20 to 50
MsgBox i & " " & j , vbInformation
Next j
Next i
حلقه های Do...Loop

این حلقه پایان نداره.دقت کن:



Do
MsgBox "Hello User!" , vbInformation
Loop
و حالا اگر بخوایی حلقه های Do...Loop رو با شرط اجرا بنویسی باید از حلقه های زیر استفاده کنی:

حلقه Do...Loop Until

این حلقه تا زمانی اجرا میشه که شرط بعد از Loop Until برقرار باشه:



Dim iCount As Integer

Do
MsgBox "Hello User!" , vbInformation
iCount = iCount + 1
Loop Until iCount <=10
این حلقه اگر دقت کنی بعد از هر باری که یه پیغام میده یه واحد به شمارنده iCount اضافه می کنه و حلقه تا وقتی اجرا میشه که iCount کوچکتر یا مساوی 10 باشه.این حلقه رو به این صورت هم میتونی بنویسی:



Do Until iCount<=10
'Statements
Loop
حلقه Do...While

این هم مثل قبلی هست.یعنی تا زمانی اجرا می شه که شرط بعد از While برقرار باشه:



Dim iCount As Integer

Do While iCount <=10
MsgBox "Hello User!" , vbInformation
iCount = iCount + 1
Loop
حلقه While...Wend

باید متوجه شده باشی که این حلقه چجوری کار می کنه.تا وقتی که شرط بعد از While برقرار باشه و با واژه Wend هم حلقه بسته می شه:



Dim iCount As Integer

While iCount <=10
MsgBox "Hello User" , vbInformation
Wend

موفق باشی.

Mehrdad_Desiner
یک شنبه 05 فروردین 1386, 02:15 صبح
Thanks My Dear

CodeMasterX
یک شنبه 05 فروردین 1386, 03:58 صبح
خواهش می کنم قابلی نداشت