Sdílet prostřednictvím


Vnořené řídicí struktury (Visual Basic)

Můžete například umístit ovládací příkazy uvnitř jiné příkazy řízení If...Then...Else blokovat v For...Next smyčky.Prohlášení ovládací prvek umístěn uvnitř jiného ovládacího prvku je označováno jako vnořené.

Vnořování úrovní

Řízení struktury v Visual Basic mohou být vnořené na libovolný počet úrovní.Je běžnou praxí čitelnost vnořené struktury zvětšením odsazení každého subjektu.Editor integrované vývojové prostředí (IDE) automaticky provádí.

V následujícím příkladu postup sumRows sečte pozitivních prvků každého řádku matice.

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

V předchozím příkladu první Next prohlášení zavře vnitřní For smyčky a poslední Next příkaz ukončí vnější For smyčky.

Podobně, vnořené v If příkazy, End If příkazy automaticky použita nejbližší před If prohlášení.Vnořené Do smyčky pracovat podobně, s nejvnitřnějším Loop prohlášení odpovídající nejvnitřnějším Do prohlášení.

[!POZNÁMKA]

Pro mnoho řídících strukturu platí, že když kliknete na klíčové slovo, všechna klíčová slova ve struktuře jsou zvýrazněna.Například po klepnutí na tlačítko If v If...Then...Else konstrukci, všechny instance If, Then, ElseIf, Elsea End If v konstrukci, jsou zvýrazněny.Chcete-li přesunout další nebo předchozí zvýrazněné klíčové slovo, stiskněte CTRL + SHIFT + ŠIPKA DOLŮ nebo CTRL + SHIFT + Šipka nahoru.

Vnoření různé druhy struktury řízení

Můžete vnořit jeden druh strukturu řízení v rámci jiného druhu.V následujícím příkladu With blokovat uvnitř For Each smyčka a vnořené If blokuje uvnitř With bloku.

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

Překrývající se ovládací struktury

Nemůže překrývat struktury řízení.To znamená, že jakékoliv vnořené struktury musí být zcela obsažené v další vnitřní strukturu.Například následující ujednání je neplatný protože For smyčky ukončí před vnitřní With bloku ukončí.

Neplatný vnoření struktur a pro

Grafický diagram neplatného vnoření

Visual Basic Zjistí takové překrývající se ovládací prvek struktur a signalizuje chybu v době kompilace.

Viz také

Koncepty

Struktury rozhodování (Visual Basic)

Struktury smyčky (Visual Basic)

Ostatní řídicí struktury (Visual Basic)

Další zdroje

Tok řízení v jazyce Visual Basic