While...End While Deyimi (Visual Basic)
Belirli bir koşul olduğu True
sü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 condition Nothing , Visual Basic bunu olarak False ele alır. |
statements |
isteğe bağlı. aşağıdaki bir veya daha fazla deyimdir While ve 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ığı True
sü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.
Not
Anahtar While
sözcüğü do ... Döngü Deyimi, Skip While Yan Tümcesi ve Take While Yan Tümcesi.
ise condition
True
, 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 True
isecondition
, 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üş Boolean
bir 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