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