While...End While Deyimi (Visual Basic)

Belirli bir koşul olduğu Truesürece bir dizi deyim çalıştırır.

Sözdizimi

While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

Parça

Süre Tanım
condition Gerekli. Boolean Ifa -de. ise conditionNothing, Visual Basic bunu olarak Falseele alır.
statements isteğe bağlı. aşağıdaki bir veya daha fazla deyimdir Whileve her seferinde condition çalışır True.
Continue While isteğe bağlı. Denetimi bloğun bir sonraki yinelemesine While aktarır.
Exit While isteğe bağlı. Aktarımlar, denetimi bloğun While dışına aktarır.
End While Gerekli. Bloğun tanımını sonlandırır While .

Açıklamalar

Koşul While...End While kaldığı Truesürece, bir deyim kümesini belirsiz sayıda yinelemek istediğinizde bir yapı kullanın. Koşulu nerede test ettiğiniz veya hangi sonuç için test ettiğiniz konusunda daha fazla esneklik istiyorsanız, ... Döngü Deyimi. Deyimleri belirli bir sayıda yinelemek istiyorsanız For ... Next Deyimi genellikle daha iyi bir seçimdir.

ise conditionTrue, deyimiyle karşılaşılana kadar çalıştırmanın End While tümüstatements. Ardından Denetim deyimine While döner ve condition yeniden denetlenecektir. hala Trueisecondition, işlem yinelenir. ise False, denetim deyimini izleyen deyime End While geçer.

deyimi, While döngü başlatılmadan önce koşulu her zaman denetler. Koşul kalırken döngü devam eder True. False Döngüye condition ilk girdiğinizde ise, bir kez bile çalışmaz.

Genellikle condition iki değerin karşılaştırmasından elde edilir, ancak Boole Veri Türü değeri (True veya False) olarak değerlendirilen herhangi bir ifade olabilir. Bu ifade, sayısal tür gibi başka bir veri türünün değerine dönüştürülmüş Booleanbir değer içerebilir.

Bir döngünün içine başka bir döngü yerleştirerek döngüleri iç içe While yerleştirebilirsiniz. Ayrıca, farklı türlerde denetim yapılarını birbirleri içinde iç içe yerleştirebilirsiniz. Daha fazla bilgi için bkz . İç İçe Denetim Yapıları.

Çıkış Sırasında

Exit While deyimi bir döngüden çıkmak için başka bir While yol sağlayabilir. Exit While hemen denetimi deyimini izleyen deyime End While aktarır.

Genellikle bazı koşullar değerlendirildikten sonra (örneğin, bir If...Then...Else yapıda) kullanırsınızExit While. Hatalı bir değer veya sonlandırma isteği gibi yinelemeyi gereksiz veya imkansız hale getiren bir koşul algılarsanız döngüden çıkmak isteyebilirsiniz. Son derece büyük ve hatta sonsuz sayıda çalıştırabilen bir döngü olan sonsuz döngüye neden olabilecek bir koşul için test ederken kullanabilirsinizExit While. Daha sonra döngüden kaçmak için kullanabilirsiniz Exit While .

Döngünün While herhangi bir yerine istediğiniz sayıda Exit While deyim yerleştirebilirsiniz.

İç içe While döngüler içinde kullanıldığında, Exit While denetimi en iç döngünün dışına ve sonraki üst iç içe yerleştirme düzeyine aktarır.

deyimi, Continue While denetimi hemen döngünün bir sonraki yinelemesine aktarır. Daha fazla bilgi için bkz . Continue Deyimi.

Örnek 1

Aşağıdaki örnekte, değişken 10'dan büyük olana kadar index döngüdeki deyimler çalışmaya devam eder.

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

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

Örnek 2

Aşağıdaki örnekte ve Exit While deyimlerinin Continue While kullanımı gösterilmektedir.

Dim index As Integer = 0
While index < 100000
    index += 1

    ' If index is between 5 and 7, continue
    ' with the next iteration.
    If index >= 5 And index <= 8 Then
        Continue While
    End If

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop.
    If index = 10 Then
        Exit While
    End If
End While

Debug.WriteLine("")
' Output: 1 2 3 4 9 10

Örnek 3

Aşağıdaki örnek bir metin dosyasındaki tüm satırları okur. OpenText yöntemi dosyayı açar ve karakterleri okuyan bir StreamReader döndürür. koşulunda While , Peek yöntemi StreamReader dosyanın ek karakterler içerip içermediğini 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)

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

        sr.Close()
    End If
End Sub

Ayrıca bkz.