Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
, , Then
ElseIf
, et Else
End If
dans 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.