Moduł
Spis treści
Indeks 🔎︎

# Instrukcja Do...Loop

Powtarza instrukcje zawarte pomiędzy instrukcjami Do i Loop, jeśli podany warunek ma wartość True (prawda) lub aż przyjmie wartość True (prawda).

## Składnia

    Do [{While | Until} warunek = True]

blok instrukcji

    [Exit Do]

blok instrukcji

    Loop

lub

    Do

blok instrukcji

    [Exit Do]

blok instrukcji

    Loop [{While | Until} warunek = True]

## Parametry/elementy

Warunek: Porównanie, wyrażenie numeryczne lub w postaci ciągu o wartości True (prawda) lub False (fałsz).

Blok instrukcji: Instrukcje, które mają być powtarzane, jeśli warunek ma wartość True (prawda) lub aż przyjmie wartość True (prawda).

Instrukcja Do...Loop wykonuje pętlę tak długo (lub aż do momentu) jak warunek ma wartość True (prawda). Warunek opuszczenia pętli należy wprowadzić po instrukcji Do lub Loop. Poniżej przedstawiono poprawne przykłady pętli:

## Składnia

    Do While warunek = True

...blok instrukcji

    Loop

Blok instrukcji pomiędzy instrukcjami Do While i Loop jest powtarzany dopóki warunek jest prawdziwy.

    Do Until warunek = True

...blok instrukcji

    Loop

Blok instrukcji pomiędzy instrukcjami Do Until i Loop jest powtarzany dopóki warunek jest fałszywy.

    Do

...blok instrukcji

    Loop While warunek = True

Blok instrukcji pomiędzy instrukcjami Do i Loop jest powtarzany dopóki warunek jest prawdziwy.

    Do

...blok instrukcji

    Loop Until warunek = True

Blok instrukcji pomiędzy instrukcjami Do i Loop jest powtarzany dopóki warunek jest fałszywy.

W celu bezwarunkowego zakończenia pętli można użyć instrukcji Exit Do. Można ją umieścić w dowolnym miejscu wewnątrz struktury Do...Loop. Warunek wyjścia z pętli można także zdefiniować za pomocą struktury If...Then:

    Do...

instrukcje

    If warunek = True Then Exit Do

instrukcje

    Loop...

## Przykład

    Sub ExampleDoLoop

    Dim sFile As String

    Dim sPath As String

        sPath = "c:\"

        sFile = Dir$( sPath ,22)

        If sFile <> "" Then

            Do

                MsgBox sFile

                sFile = Dir$

            Loop Until sFile = ""

        End If

    End Sub