Cyklus DO LOOP

Používá se k opakování těla cyklu, v závislosti na ukončovací podmínce.
Pokud je v podmínce použito While tak cyklus je ukončen pokud není podmínka splněna. Když je použito Untile, pak cyklu je ukončen při splnění podmínky. Do cyklu je možno vnořovat další cykly.

Cyklus Do Loop má dvě varianty. Variantu s podmínkou na začátku a s podmínkou na konci.

Rozdíl mezi cyklem For a Do Loop

Cyklus For je řízený parametrem tj. proměnnou, která po každém průchodu změní hodnotu. Není-li uvedeno jinak její hodnota se zvýší o jednu. Cyklus je ukončen pokud parametr dosáhne předem určené hodnoty. Cyklus For se tedy používá tam, kde je předem známý počet opakování, cyklus Do Loop tam, kde je jeho ukončení dáno splněním nějaké podmínky. Kdy bude podmínka splněna závisí na nějaké operaci, která proběhne v průběhu cyklu.
Cyklus Do Loop může být ale použit i v případě, kdy máme předem daný počet opakování. Pak v něm ale musí vytvořit počítadlo, které nahradí parametr cyklu For. Cyklus Do Loop je tedy univerzální a můžeme jim nahradit cyklus For.

Cyklus Do Loop podmínkou na konci

V této variantě se podmínka testuje až po prvním průchodu tělem cyklu. Tělo cyklu se tedy provede vždy alespoň jednou. Pokud je použito klíčové slovo While, bude se provádět tělo cyklu v případě, že je podmínka splněna. Pokud je použito klíčové slovo Until, bude se provádět tělo cyklu, dokud podmínka není splněna.

Syntaxe příkazu

Do
   [příkazy]
   [Exit Do]
   [příkazy]
Loop [While/Untile podmínka]


Př. Vytvořte program, který sčítá čísla, jakmile zadáte 0, pak program bude ukončen.

varianta s While

cislo = 0: soucet =0
Do
   cislo = Val(InputBox("Zadej číslo, pokud zadáš nulu, pak program bude ukončen."))
   soucet = soucet + cislo
Loop While cislo <> 0

varianta s Untile

cislo = 0: soucet =0
Do
   cislo = Val(InputBox("Zadej číslo, pokud zadáš nulu, pak program bude ukončen."))
   soucet = soucet + cislo
Loop Untile cislo = 0 


Př. Vytvořte program, který načte pět čísel, program zobrazí jejich součet.

varianta s použitím cyklu For

For i = 1 to 5
    c = val(inputbox("Zadej číslo."))
    soucet = soucet + c
next i
MsgBox soucet

varianta s použitím cyklu Do Loop s podmínkou na konci

i=0
Do
    c = val(inputbox("Zadej číslo."))
    soucet = soucet + c
    i = i +1 'Tato proměnná plní funkci počítadla, v cyklu For je jeho parametrem
Loop Until i = 5  ' Při použití While by podmínka byla nap5.  While i < 5
MsgBox soucet