Aracılığıyla paylaş


İç içe geçmiş denetim yapıları (Visual Basic)

Örneğin denetim deyimleri diğer denetim deyimleri içine yerleştirebilirsiniz bir If...Then...Else içinde engelleyecek bir For...Next döngü.Başka bir denetim ifade yerleştirilmiş bir denetim ifadesi olduğu söylenir iç içe.

İç içe düzeyleri

Kontrol yapıları, Visual Basic , istediğiniz kadar çok düzeyde iç içe olabilir.Her biri gövde girintisini artırarak iç içe geçmiş yapılar daha kolay okunur hale getirmek için yaygın bir uygulamadır.Tümleşik geliştirme ortamı (IDE) Düzenleyicisi bunu otomatik olarak yapar.

Aşağıdaki örnekte, yordam sumRows pozitif öğelerini matrisinin her satırın bir araya getirir.

Public Sub sumRows(ByVal a(,) As Double, ByRef r() As Double)
    Dim i, j As Integer
    For i = 0 To UBound(a, 1)
        r(i) = 0
        For j = 0 To UBound(a, 2)
            If a(i, j) > 0 Then
                r(i) = r(i) + a(i, j)
            End If
        Next j
    Next i
End Sub

Önceki örnekte, ilk Next deyimi kapatır iç For döngü ve son Next deyimi kapatır dış For döngü.

Benzer şekilde, içinde iç içe If ifadeleri, End If ifadeleri otomatik olarak uygulamak için en yakın önceki If ifadesi.İç içe Do döngüleri çözüm tıklatılır ile benzer bir şekilde Loop tıklatılır eşleştirme ifadesi Do ifadesi.

[!NOT]

Bir anahtar sözcüğü tıklattığınızda birçok denetim yapıları için tüm yapısı içindeki anahtar sözcükler vurgulanır.Örneğin, tıklattığınızda If , bir If...Then...Else yapım, tüm örneklerini If, Then, ElseIf, Else, ve End If içinde yapım vurgulanır.Sonraki veya önceki vurgulanan anahtar sözcüğe gitmek için ctrl + ÜSTKRKT + AŞAĞI OK veya ctrl + ÜSTKRKT + YUKARI OK tuşlarına basın.

Denetim yapıları farklı türde iç içe geçirme

Başka bir tür denetim yapısında bir tür iç içe yerleştirebilirsiniz.Aşağıdaki örnek bir With içinde engelleyecek bir For Each döngü ve iç içe If içinde engeller With blok.

For Each ctl As System.Windows.Forms.Control In Me.Controls
    With ctl
        .BackColor = System.Drawing.Color.Yellow
        .ForeColor = System.Drawing.Color.Black
        If .CanFocus Then
            .Text = "Colors changed"
            If Not .Focus() Then
                ' Insert code to process failed focus.
            End If
        End If
    End With
Next ctl

Çakışan denetim yapıları

Denetim yapıları gelemez.Diğer bir deyişle, herhangi bir iç içe geçmiş yapısı tamamen sonraki en içteki yapısı içinde bulunmalıdır.Örneğin, aşağıdaki düzenleme geçersiz olduğundan For döngüsü sonlanýr önce iç With blok sona erer.

Geçersiz Yuvalama, yapıları ve için

Geçersiz iç içe grafik diyagramı

Visual Basic Derleyici, üst üste gelen bu tür denetim yapıları ve derleme zamanı hatası sinyalleri algılar.

Ayrıca bkz.

Kavramlar

Karar yapıları (Visual Basic)

Döngü yapıları (Visual Basic)

Diğer denetim yapıları (Visual Basic)

Diğer Kaynaklar

Visual Basic'te akış denetimi