Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengulangi blok pernyataan saat kondisi Boolean
adalah True
atau sampai kondisi menjadi True
.
Sintaks
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 ]
Generator
Term | Definisi |
---|---|
Do |
Harus diisi. Memulai definisi perulangan Do . |
While |
Tidak dapat diberikan jika Until digunakan. Ulangi perulangan hingga condition menjadi False . |
Until |
Tidak dapat diberikan jika While digunakan. Ulangi perulangan hingga condition menjadi True . |
condition |
Opsional. Boolean ekspresi. Jika condition adalah Nothing , Visual Basic memperlakukannya sebagai False . |
statements |
Opsional. Satu atau lebih pernyataan yang diulang sementara, atau sampai, condition menjadi True . |
Continue Do |
Opsional. Mentransfer kontrol ke perulangan berikutnya dari perulangan Do . |
Exit Do |
Opsional. Mentransfer kontrol keluar dari perulangan Do . |
Loop |
Harus diisi. Mengakhiri definisi perulangan Do . |
Keterangan
Gunakan struktur Do...Loop
saat Anda ingin mengulang sekumpulan pernyataan dalam jumlah yang tidak terbatas, hingga suatu kondisi terpenuhi. Jika Anda ingin mengulangi pernyataan beberapa kali, Pernyataan For...Next biasanya merupakan pilihan yang lebih baik.
Anda dapat menggunakan salah satu While
atau Until
untuk menentukan condition
, tetapi tidak keduanya. Jika Anda tidak memberikan keduanya, perulangan berlanjut sampai Exit
kontrol transfer keluar dari perulangan.
Anda hanya dapat menguji condition
satu kali, baik di awal atau akhir perulangan. Jika Anda menguji condition
di awal perulangan (dalam Do
pernyataan), perulangan mungkin tidak berjalan bahkan satu kali. Jika Anda menguji di akhir perulangan (dalam Loop
pernyataan), perulangan selalu berjalan setidaknya satu kali.
Kondisi ini biasanya dihasilkan dari perbandingan dua nilai, tetapi dapat berupa ekspresi apa pun yang mengevaluasi ke nilai Jenis Data Boolean (True
atau False
). Ini termasuk nilai jenis data lain, seperti jenis numerik, yang telah dikonversi ke Boolean
.
Anda dapat menyarangkan perulangan Do
dengan menempatkan satu perulangan di dalam perulangan lainnya. Anda juga dapat menyusun berbagai jenis struktur kontrol di dalam satu sama lain. Untuk informasi selengkapnya, lihat Struktur Kontrol Berlapis.
Catatan
Struktur Do...Loop
memberi Anda lebih banyak fleksibilitas daripada Pernyataan While...End While karena memungkinkan Anda memutuskan apakah akan mengakhiri perulangan saat condition
berhenti menjadi True
atau kapan pertama kali menjadi True
. Ini juga memungkinkan Anda untuk menguji condition
di awal atau akhir perulangan.
Exit Do
Pernyataan Exit Do dapat memberikan cara alternatif untuk keluar dari Do…Loop
. Exit Do
segera mentransfer kontrol ke pernyataan yang mengikuti pernyataan Loop
.
Exit Do
sering digunakan setelah beberapa kondisi dievaluasi, misalnya dalam struktur If...Then...Else
. Anda mungkin ingin keluar dari perulangan jika Anda mendeteksi kondisi yang membuatnya tidak perlu atau tidak mungkin untuk melanjutkan iterasi, seperti nilai yang salah atau permintaan penghentian. Salah satu penggunaan Exit Do
adalah menguji kondisi yang dapat menyebabkan perulangan tanpa akhir, yang merupakan perulangan yang dapat menjalankan sejumlah besar atau bahkan tak terbatas. Anda dapat menggunakan Exit Do
untuk menghindari perulangan.
Anda dapat menyertakan sejumlah pernyataan Exit Do
di mana saja dalam Do…Loop
.
Ketika digunakan dalam perulangan Do
berlapis, Exit Do
mentransfer kontrol keluar dari perulangan terdalam dan ke tingkat bersarang berikutnya yang lebih tinggi.
Contoh 1
Dalam contoh berikut, pernyataan dalam perulangan terus berjalan hingga variabel index
lebih besar dari 10. Klausul Until
berada di akhir perulangan.
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
Contoh 2
Contoh berikut menggunakan klausul While
daripada klausul Until
, dan condition
diuji pada awal perulangan daripada di akhir.
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
Contoh 3
Dalam contoh berikut, condition
menghentikan perulangan ketika variabel index
lebih besar dari 100. Pernyataan If
dalam perulangan, bagaimanapun, menyebabkan pernyataan Exit Do
menghentikan perulangan saat variabel indeks lebih besar dari 10.
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
Contoh 4
Contoh berikut membaca semua baris dalam file teks. Metode OpenText membuka file dan mengembalikan StreamReader yang membaca karakter. Dalam kondisi Do...Loop
, metode Peek dari StreamReader
menentukan apakah ada karakter tambahan.
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