Do...Loop Deyimi (Visual Basic)

Bir Boolean koşul olduğunda True veya koşul haline gelene kadar bir deyim bloğunu yineler True .

Syntax

Do { While | Until } condition
    [ statements ]
    [ Continue Do ]
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop
' -or-
Do
    [ statements ]
    [ Continue Do ]
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop { While | Until } condition

Bölümler

Süre Tanım
Do Gereklidir. Döngünün tanımını başlatır Do .
While UntilKullanılmadıysa gereklidir. Loop olana kadar tekrarlayın condition False .
Until WhileKullanılmadıysa gereklidir. Loop olana kadar tekrarlayın condition True .
condition İsteğe bağlı. Boolean ifadesini. ise condition Nothing , Visual Basic olduğu gibi davranır False .
statements İsteğe bağlı. , Veya Until gibi yinelenen bir veya daha fazla deyim condition True .
Continue Do İsteğe bağlı. Denetimi döngünün bir sonraki yinelemesine aktarır Do .
Exit Do İsteğe bağlı. Denetimi döngünün dışına aktarır Do .
Loop Gereklidir. Döngünün tanımını sonlandırır Do .

Açıklamalar

Bir Do...Loop deyim kümesini sınırsız sayıda yinelemek istediğinizde, bir koşul karşılanana kadar bir yapı kullanın. Deyimlerini bir dizi defa yinelemek istiyorsanız, için... Sonraki Ifade genellikle daha iyi bir seçimdir.

WhileYa da Until öğesini belirtmek için veya condition ikisini de kullanabilirsiniz.

conditionDöngünün başlangıcında veya sonunda yalnızca bir kez test edebilirsiniz. Döngünün başlangıcında test ederseniz condition ( Do bildiriminde), döngü bir kez çalışmayabilir. Döngünün sonunda test ederseniz ( Loop bildiriminde), döngü her zaman en az bir kez çalışır.

Koşul genellikle iki değerin karşılaştırılmasının sonucunu verir, ancak Boolean veri türü değeri (veya) olarak değerlendirilen herhangi bir ifade olabilir True False . Buna dönüştürülmüş sayısal türler gibi diğer veri türlerinin değerleri de dahildir Boolean .

Bir Do döngüyü diğerinin içine yerleştirerek döngüleri iç içe geçirebilirsiniz. Ayrıca, farklı türlerde denetim yapılarını birbirleriyle iç içe geçirebilirsiniz. Daha fazla bilgi için bkz. Iç Içe denetim yapıları.

Not

Do...LoopYapı, çok daha fazla esneklik sağlar ... End while Ifadesinin sonu , ne zaman condition True veya ilk kez geldiğini sonlandırırken döngüyü sonlandırmaya karar vermenize olanak sağlar True . Ayrıca döngünün başlangıcında veya sonunda test etmenizi sağlar condition .

Çık

Exit Do deyimleri, bir çıkışı için alternatif bir yol sağlayabilir Do…Loop . Exit Do denetimi, ifadesiyle takip eden deyime hemen aktarır Loop .

Exit Do Genellikle, örneğin bir yapıda, bazı koşullar hesaplandıktan sonra kullanılır If...Then...Else . Hatalı bir değer veya sonlandırma isteği gibi yineleme işleminin devam etmesi için gereksiz veya imkansız hale getiren bir koşul tespit ederseniz bir döngüden çıkmak isteyebilirsiniz. Tek kullanımı, sonsuz bir Exit Do döngüye neden olabilecek bir durum için test etmek, büyük veya hatta sonsuz bir sayı çalışabilen bir döngüdür. Exit DoDöngüyü atlamak için ' i kullanabilirsiniz.

Herhangi Exit Do bir yerde herhangi bir sayıda deyim ekleyebilirsiniz Do…Loop .

İç içe döngüler içinde kullanıldığında Do , Exit Do denetimi en içteki döngünün dışına ve sonraki yüksek iç içe geçme düzeyine aktarır.

Örnek 1

Aşağıdaki örnekte, döngü içindeki deyimler, değişken 10 ' dan büyük olana kadar çalışmaya devam eder index . UntilYan tümce döngünün sonunda bulunur.

Dim index As Integer = 0
Do
    Debug.Write(index.ToString & " ")
    index += 1
Loop Until index > 10

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Örnek 2

Aşağıdaki örnek While , bir yan tümce yerine bir yan tümce kullanır Until ve condition son yerine döngüsünün başlangıcında test edilir.

Dim index As Integer = 0
Do While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
Loop

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Örnek 3

Aşağıdaki örnekte, condition index değişken 100 ' den büyükse döngüyü sonlandırır. IfAncak, döngüdeki ifade, Exit Do Dizin değişkeni 10 ' dan büyük olduğunda deyimin döngüyü durdurmasına neden olur.

Dim index As Integer = 0
Do While index <= 100
    If index > 10 Then
        Exit Do
    End If

    Debug.Write(index.ToString & " ")
    index += 1
Loop

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Örnek 4

Aşağıdaki örnek bir metin dosyasındaki tüm satırları okur. OpenTextYöntemi dosyayı açar ve karakterleri okuyan bir döndürür StreamReader . Koşulunda, Do...Loop Peek öğesinin yöntemi StreamReader ek karakter olup olmadığını belirler.

Private Sub ShowText(ByVal textFilePath As String)
    If System.IO.File.Exists(textFilePath) = False Then
        Debug.WriteLine("File Not Found: " & textFilePath)
    Else
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)

        Do While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        Loop

        sr.Close()
    End If
End Sub

Ayrıca bkz.