Do...Loop Deyimi (Visual Basic)
Koşul veya True
durumuna gelene True
kadar bir Boolean
deyim bloğunu yineler.
Sözdizimi
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 ]
Parça
Süre | Tanım |
---|---|
Do |
Gerekli. Döngünün Do tanımını başlatır. |
While |
Kullanılırsa Until verilemez. döngüsüne kadar condition False yineleyin. |
Until |
Kullanılırsa While verilemez. döngüsüne kadar condition True yineleyin. |
condition |
isteğe bağlı. Boolean Ifa -de. ise condition Nothing , Visual Basic bunu olarak False ele alır. |
statements |
isteğe bağlı. bir veya daha fazla deyim, iken veya until condition True olarak yinelenir. |
Continue Do |
isteğe bağlı. Denetimi döngünün bir sonraki yinelemesine Do aktarır. |
Exit Do |
isteğe bağlı. Aktarımlar denetimi döngünün Do dışına aktarır. |
Loop |
Gerekli. Döngünün Do tanımını sonlandırır. |
Açıklamalar
Bir Do...Loop
koşul karşılanana kadar bir dizi deyimi süresiz olarak yinelemek istediğinizde bir yapı kullanın. Deyimleri belirli bir sayıda yinelemek istiyorsanız For ... Next Deyimi genellikle daha iyi bir seçimdir.
belirtmek için veya kullanabilirsinizWhile
, ancak ikisini birden kullanamazsınızcondition
.Until
Hiçbirini vermezseniz, döngü, döngü dışında bir Exit
aktarım denetimine kadar devam eder.
Döngünün başında veya sonunda yalnızca bir kez test condition
edebilirsiniz. Döngünün başlangıcında (deyimindeDo
) test condition
ederseniz döngü bir kez bile çalışmayabilir. Döngünün sonunda (deyiminde Loop
) test ederseniz, döngü her zaman en az bir kez çalışır.
Koşul genellikle iki değerin karşılaştırmasından kaynaklanabilir, ancak Boole Veri Türü değeri (True
veya False
) olarak değerlendirilen herhangi bir ifade olabilir. Buna, sayısal türler gibi olarak dönüştürülen Boolean
diğer veri türlerinin değerleri dahildir.
Bir döngünün içine başka bir döngü koyarak döngüleri iç içe Do
yerleştirebilirsiniz. Ayrıca, farklı türlerde denetim yapılarını da iç içe yerleştirebilirsiniz. Daha fazla bilgi için bkz . İç İçe Denetim Yapıları.
Not
YapıDo...Loop
, While'ten daha fazla esneklik sağlar... End While Deyimi, döngünün ne True
zaman condition
veya ilk haline geldiğinde True
sonlandırılıp sonlandırılmayacağına karar vermenizi sağlar. Ayrıca döngünün başında veya sonunda test condition
etmenize de olanak tanır.
Do'dan çık
Exit Do deyimi, uygulamasından çıkmak için alternatif bir Do…Loop
yol sağlayabilir. Exit Do
denetimi hemen deyimini izleyen deyime Loop
aktarır.
Exit Do
genellikle, örneğin bir If...Then...Else
yapıda bazı koşullar değerlendirildikten sonra kullanılır. 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. bunun bir kullanımıExit Do
, sonsuz döngüye neden olabilecek bir koşulu test etmektir. Bu, çok sayıda ve hatta sonsuz sayıda çalıştırabilen bir döngüdür. Döngüden kaçmak için kullanabilirsiniz Exit Do
.
içinde herhangi bir Do…Loop
yerde istediğiniz sayıda Exit Do
deyim ekleyebilirsiniz.
İç içe Do
döngüler içinde kullanıldığında, Exit Do
denetimi en iç döngünün dışına ve sonraki üst iç içe yerleştirme düzeyine aktarır.
Ö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. Until
yan tümcesi döngünün sonundadır.
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 yan tümce yerine yan Until
tümce kullanır While
ve condition
sonunda değil döngünün başı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 değişken condition
100'den büyük olduğunda döngü durdurulur index
. If
Ancak döngüdeki deyimi, dizin değişkeni 10'dan büyük olduğunda deyiminin döngünün durmasına neden olurExit Do
.
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. OpenText yöntemi dosyayı açar ve karakterleri okuyan bir StreamReader döndürür. koşulunda Do...Loop
, Peek 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