Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Řídicí příkazy můžete umístit do jiných řídicích příkazů, například If...Then...Else do bloku ve smyčce For...Next . Řídicí příkaz umístěný uvnitř jiného řídicího příkazu je vnořený.
Úrovně vnoření
Řídicí struktury v jazyce Visual Basic lze vnořit na libovolný počet úrovní. Běžně se doporučuje, aby vnořené struktury byly čitelnější odsazením těla každého z nich. Editor integrovaného vývojového prostředí (IDE) to udělá automaticky.
V následujícím příkladu procedura sumRows sečte kladné prvky 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 příkaz zavře vnitřní For smyčku a poslední Next příkaz zavře vnější For smyčku.
Podobně v vnořených If příkazech se End If příkazy automaticky použijí na nejbližší předchozí If příkaz. Vnořené Do smyčky fungují podobným způsobem, přičemž nejvnitřnější Loop příkaz odpovídá nejvnitřnějšímu Do příkazu.
Poznámka:
U mnoha řídicích struktur se po kliknutí na klíčové slovo zvýrazní všechna klíčová slova ve struktuře. Když například kliknete If v If...Then...Else konstrukci, zvýrazní se všechny výskyty If, Then, ElseIf, Else a End If v konstrukci. Pokud chcete přejít na další nebo předchozí zvýrazněné klíčové slovo, stiskněte kombinaci kláves CTRL+SHIFT+ŠIPKA DOLŮ nebo CTRL+SHIFT+ŠIPKA NAHORU.
Vnoření různých druhů řídicích struktur
Jeden druh řídicí struktury můžete vnořit do jiného typu. Následující příklad používá With blok uvnitř For Each smyčky a vnořené If bloky 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 řídicí struktury
Řídicí struktury nelze překrývat. To znamená, že jakákoli vnořená struktura musí být zcela obsažena v další vnitřní struktuře. Například následující uspořádání je neplatné, protože smyčka For se ukončí před ukončením vnitřního With bloku.
Kompilátor jazyka Visual Basic zjistí takové překrývající se řídicí struktury a signalizuje chybu v době kompilace.