Bagikan melalui


Pernyataan Do...Loop (Visual Basic)

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. Booleanekspresi. 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

Lihat juga