Sun Microsystems
Termékek
 
Támogatás
 
 

Előző Előző     Tartalom     Tárgymutató     Következő Következő

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):

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Előző Előző     Tartalom     Tárgymutató     Következő Következő