Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Vous pouvez placer des instructions de contrôle à l’intérieur d’autres instructions de contrôle, par exemple un If...Then...Else bloc dans une For...Next boucle. Une instruction de contrôle placée à l’intérieur d’une autre instruction de contrôle est dite imbriquée.
Niveaux d’imbrication
Les structures de contrôle dans Visual Basic peuvent être imbriquées à autant de niveaux que vous le souhaitez. Il est courant de rendre les structures imbriquées plus lisibles en mettant en retrait le corps de chacun d’eux. L’éditeur d’environnement de développement intégré (IDE) effectue automatiquement cette opération.
Dans l’exemple suivant, la procédure sumRows ajoute les éléments positifs de chaque ligne de la matrice.
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
Dans l’exemple précédent, la première Next instruction ferme la boucle interne For et la dernière Next instruction ferme la boucle externe For .
De même, dans les instructions imbriquées If , les End If instructions s’appliquent automatiquement à l’instruction précédente If la plus proche. Les boucles imbriquées Do fonctionnent de manière similaire, avec l’instruction la plus Loop interne correspondant à l’instruction la plus Do interne.
Remarque
Pour de nombreuses structures de contrôle, lorsque vous cliquez sur un mot clé, tous les mots clés de la structure sont mis en surbrillance. Par exemple, lorsque vous cliquez If dans une If...Then...Else construction, toutes les instances de If, , ThenElseIf, et ElseEnd Ifdans la construction sont mises en surbrillance. Pour passer au mot clé en surbrillance suivant ou précédent, appuyez sur Ctrl+Maj+Bas ou Ctrl+Maj+Flèche vers le haut.
Imbrication de différents types de structures de contrôle
Vous pouvez imbriquer un type de structure de contrôle dans un autre type. L’exemple suivant utilise un With bloc à l’intérieur d’une For Each boucle et des blocs imbriqués If à l’intérieur du With bloc.
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
Structures de contrôle qui se chevauchent
Vous ne pouvez pas chevaucher les structures de contrôle. Cela signifie que toute structure imbriquée doit être entièrement contenue dans la structure la plus interne suivante. Par exemple, la disposition suivante n’est pas valide, car la For boucle se termine avant la fin du bloc interne With .
Le compilateur Visual Basic détecte ces structures de contrôle qui se chevauchent et signale une erreur au moment de la compilation.