Do...Loop
A Do...Loop ciklusban nem rögzített a menetek száma. Ehelyett a Do...Loop ciklust addig hajtja végre a program, amíg egy adott feltétel nem teljesül. A Do...Loop ciklusnak négy változata van (a következő példákban az A > 10 bármilyen feltétel lehet):
A Do While...Loop változat
Do While A > 10
' ... ciklusmag
Loop
|
ellenőrzi minden menet előtt, hogy a feltétel teljesül-e, és csak ha igen, akkor hajtja végre a ciklusmagot.
A Do Until...Loop változat
Do Until A > 10
' ... ciklusmag
Loop
|
addig hajtja végre a ciklusmagot, amíg a feltétel nem teljesül.
A Do...Loop While változat
Do
' ... ciklusmag
Loop While A > 10
|
csak azután ellenőrzi a feltételt, miután egyszer végrehajtotta a ciklusmagot, és befejeződik, ha a feltétel igaz.
A Do...Loop Until változat
Do
' ... ciklusmag
Loop Until A > 10
|
is az első menet után ellenőrzi a feltételt, de a ciklusmagot addig ismétli, amíg a feltétel igaz.
Ahogy a For...Next ciklusban, úgy a Do...Loop ciklusban is van befejező parancs. Az Exit Do parancs a ciklus bármelyik pontján kilép a ciklusból.
Do
If A = 4 Then
Exit Do
End If
' ... ciklusmag
While A > 10
|
Programozási példa: Rendezés egymásba ágyazott ciklusokkal
A ciklusok sok mindenre használhatók, például listák végignézéséhez, értékek visszaadásához vagy bonyolult matematikai feladatok végrehajtásához. A következő példa egy algoritmus, amely egy nevekből álló listát rendez.
Sub Sort
Dim Entry(1 To 10) As String
Dim Count As Integer
Dim Count2 As Integer
Dim Temp As String
Entry(1) = "Patty"
Entry(2) = "Kurt"
Entry(3) = "Thomas"
Entry(4) = "Michael"
Entry(5) = "David"
Entry(6) = "Cathy"
Entry(7) = "Susie"
Entry(8) = "Edward"
Entry(9) = "Christine"
Entry(10) = "Jerry"
For Count = 1 To 10
For Count2 = Count + 1 To 10
If Entry(Count) > Entry(Count2) Then
Temp = Entry(Count)
Entry(Count) = Entry(Count2)
Entry(Count2) = Temp
End If
Next Count2
Next Count
For Count = 1 To 10
Print Entry(Count)
Next Count
End Sub
|
A program a neveket páronként kicseréli, amíg végül nem lesznek növekvő sorrendben rendezve. Akárcsak a buborékok, a nevek fokozatosan a helyükre mozognak. Éppen ezért ezt az algoritmust buborékrendezésnek hívják.
|