Bagikan melalui


Pernyataan GoTo

Bercabang tanpa syarat ke baris tertentu dalam prosedur.

Sintaks

GoTo line  

Bagian

line
Harus diisi. Label garis apa pun.

Keterangan

Pernyataan GoTo hanya dapat bercabang ke baris dalam prosedur di mana pernyataan tersebut muncul. Garis harus memiliki label garis yang GoTo dapat merujuk. Untuk informasi selengkapnya, lihat Cara: Pernyataan Label.

Catatan

pernyataan GoTo dapat membuat kode sulit dibaca dan dipelihara. Jika memungkinkan, gunakan struktur kontrol sebagai gantinya. Untuk informasi selengkapnya, lihat Alur Kontrol.

Anda tidak dapat menggunakan pernyataan GoTo untuk bercabang dari luar konstruksi For... Next, For Each...Next, SyncLock...End SyncLock, Try...Catch...Finally, With...End With, atau Using...End Using ke label di dalamnya.

Konstruksi Percabangan dan Coba

Dalam konstruksi Try...Catch...Finally, aturan berikut berlaku untuk percabangan dengan pernyataan GoTo.

Blok atau wilayah Percabangan masuk dari luar Percabangan keluar dari dalam
Try blok Hanya dari blok Catch konstruksi yang sama 1 Hanya untuk di luar seluruh konstruksi
Catch blok Tidak pernah diizinkan Hanya untuk di luar seluruh konstruksi, atau ke blok Try konstruksi yang sama 1
Finally blok Tidak pernah diizinkan Tidak pernah diizinkan

1 Jika satu konstruksi Try...Catch...Finally bersarang dalam konstruksi lain, blok Catch dapat bercabang ke blok Try pada tingkat bersarangnya sendiri, tetapi tidak ke blok Try yang lain. Konstruksi Try...Catch...Finally bersarang harus termuat sepenuhnya dalam blok Try atau Catch dari konstruksi tempatnya bersarang.

Ilustrasi berikut menunjukkan satu konstruksi Try yang bersarang di dalam konstruksi lainnya. Berbagai cabang antara blok kedua konstruksi ditunjukkan sebagai valid atau tidak valid.

Graphic diagram of branching in Try constructions

Contoh

Contoh berikut menggunakan pernyataan GoTo untuk bercabang ke label baris dalam prosedur.

    Sub GoToStatementDemo()
        Dim number As Integer = 1
        Dim sampleString As String
        ' Evaluate number and branch to appropriate label.
        If number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
        sampleString = "Number equals 1"
        GoTo LastLine
Line2:
        ' The following statement never gets executed because number = 1.
        sampleString = "Number equals 2"
LastLine:
        ' Write "Number equals 1" in the Debug window.
        Debug.WriteLine(sampleString)
    End Sub

Lihat juga