Cours 5 : Structure des conditions (tests, boucles)



La structure des tests | La structure des boucles




1. Structure des tests

1.1 La structure : If...Then...Else...end If


Voici un exemple de structure simple avec l'instruction If :

If condition Then
Instructions 1
else
Instructions 2
End if

Interprétation : Si la condition est vérifiée alors les instructions 1 sont exécutées sinon les instructions 2 sont exécutées à la place. (Notez que l'on peut utiliser des opérateurs logiques And (et) et Or (ou) pour que plusieurs conditions doivent d'abord être vérifiées avant de pouvoir exécuter les instructions suivantes.). Le mot Else et les instructions qui suivent ne sont pas obligatoire.

Voici un autre exemple de structure avec If mais un peu plus complexe:

If Condition 1 Then
Instruction 1
ElseIf Condition 2 Then
Instruction 2
Else
Instructions X
End If

Interprétation : Si la condition 1 est vérifiée alors les instructions 1 sont exécutées. Sinon si la condition 2 est vérifiée alors les instructions 2 sont exécutées. Sinon, si aucune de ces deux conditions ne sont vérifiées alors les instructions X sont exécutées.

Il existe une autre structure simplifiée de If mais qui moins utilisée:

Variable = IIf (Condition, instructions 1, instructions 2)

Interprétation : Si la condition est vérifiée alors les instructions 1 sont exécutées sinon les instructions 2 sont exécutées à la place.
L'instruction IIf(Immediate If) est utile lorsque qu'il n'y a que une ou deux instructions en fonction d'une condition. Par ailleurs, la valeur retournée par la condition est affectée à une variable.

1.2 La structure Select Case...End Select


Lorsque l'on doit effectuer toute une série de tests, il est préférable d'utiliser la structure Select Case...End Select au lieu de If...Then...End if.
Ainsi, les deux exemples suivants sont équivalents :

Select Case Semaine
Case 1
Jour = "Lundi"
Case 2
Jour = "Mardi"
Case 3
Jour = "Mercredi"
Case 4
Jour = "Jeudi"
Case 5
Jour = "Vendredi"
Case 6
Jour = "Samedi"
Case 7
Jour = "Dimanche"
Else
MsgBox "erreur", vbOKOnly , "Note"
End Select

If Semaine = 1 Then
Jour = "Lundi"
ElseIf Semaine = 2 Then
Jour = "Mardi"
ElseIf Semaine = 3 Then
Jour = "Mercredi"
ElseIf Semaine = 4 Then
Jour = "Jeudi"
ElseIf Semaine = 5 Then
Jour = "Vendredi"
ElseIf Semaine = 6 Then
Jour = "Samedi"
ElseIf Semaine = 7 Then
Jour = "Dimanche"
Else
MsgBox "erreur", vbOKOnly , "Note"
End If

Interprétation : Si la variable Semaine vaut 1, alors la variable Jour reçoit la valeur Lundi. Si la variable Semaine vaut 1, alors la variable Jour reçoit la valeur Mardi. (Etc...). Si la variable Semaine ne reçoit aucune valeur comprise entre 1 et 7, alors un message indiquant une erreur est affiché.




2. Structure des boucles

2.1 La structure For..Next


La structure For...Next is utile lorsqu'on doit répéter plusieurs fois la même instruction.
Exemple :

For J = 1 To 10
T(J) = J
Next

Interprétation : Dans cette boucle, l'instruction "T(J)=J" est répétée 10 fois c'est à dire jusqu'à ce que J soit égale à 10. A chaque passage, l'instruction "T(J)=J" affecte à T(J) les valeurs 1 à 10.

Pour que l'instruction soit exécutée une fois sur deux, vous pouvez utiliser l'instruction Step :

For J = 1 To 10 Step 2
T(J) = J
Next

Interprétation : Dans cette boucle, l'instruction "T(J)=J" affecte à T(J) les valeurs 1,3,5,7,9.

2.2 La structure For Each...Next


Cette structure est moins utilisée que la précédente. Elle sert surtout à exécuter des instructions portant sur un tableau.
Exemple :

Dim Semaine(1 to 7) As String
Dim Jour As Variant
Semaine(1) = "Lundi"
'Etc...
For Each Jour In Semaine()
Combo1.AddItem Jour
Next

Interprétation : Pour chaque Jour de la Semaine, on ajoute à la liste combinée, la valeur de la variable Jour jusqu'à ce que l'indice de la semaine soit égale à 7.

2.3 Les structures Do...Loop et While...Wend


Avec ces boucles, le nombre de fois où sont répétées les instructions est indéfini.
Les deux exemples qui suivent sont équivalents :

i = 1
Do
T(i) = i
i = i + 1
Loop Until i > 10

i = 1
While i < 10
T(i) = i
i = i + 1
Wend

Interprétation : La variable i est initialisée à 1 au départ. Les instructions qui suivent sont exécutées jusqu'à ce que i soit supérieure à 10. A chaque passage, on affecte à la variable T d'indice i la valeur de i.

Il existe d'autres variantes de ces boucles et qui sont chacune équivalentes :

Do
Instructions
Loop While Condition
Do Until Condition
Instructions
Loop
Do While Condition
Instructions
Loop


up
Cours précédent Cours suivant