|
Nécessité de ces structures
Le
programmeur est très souvent amené à tester
des valeurs et à orienter le programme selon ces valeurs.
L'utilisateur est parfois invité à faire des
choix que le programme doit prendre en compte.
Plusieurs structures décisionnelles
permettent ces traitements.
Il
s'agit d'utiliser la structure la plus adaptée au problème à
résoudre.
Exemples :
-
Traitement d'un mot
de passe.
-
Essai de la part
d'un joueur.
-
Comptage des bonnes
réponses.
-
Choix d'un niveau
de jeu.
Structure If … Then … Else …
Cette
structure décisionnelle revêt 2 formes :
-
Sur une seule ligne :
Syntaxe :
If
condition Then instruction1 [Else
instruction2]
Condition
est une expression dont la valeur est booléenne (True ou False).
Si
cette expression est une valeur numérique, la valeur 0 (zéro) correspond à
False et toute autre valeur correspond à True.
Exemple :
If
MotDePasse <> "zizou" Then End
'assez brutal!
-
Sous forme de bloc :
Syntaxe :
If
condition Then
[instructions]
Else
[instructions]
End If
Exemple :
If
NombreProposé > NombreATrouver
Then
MsgBox("Votre nombre
est trop grand !")
Essai = Essai + 1
Else
MsgBox("Votre nombre
est trop petit !")
Essai = Essai + 1
End If
' Essayez
de trouver ce qui manque dans ce test !
Insuffisance de cette structure
Cette
structure n'est vraiment valable que pour une alternative (2
possibilités).
Pour
traiter 3 possibilités il faudra imbriquer un autre
If
après l'instruction
Else.
Exemple :
If
NombreProposé > NombreATrouver
Then
MsgBox("Votre nombre
est trop grand !")
Else
If
NombreProposé < NombreATrouver
Then
MsgBox("Votre nombre
est trop petit !")
Else
MsgBox("Gagné !")
End If
End If
' Essayez
de trouver ce qui manque cette fois !
Au-delà de 3 possibilités on a besoin d'une autre structure qui peut
gérer plusieurs cas.
Structure Select … Case …
C’est
une extension du If … Then … Else … Elle
permet une programmation plus claire en évitant une trop grande
imbrication de If successifs.
Syntaxe :
Select Case Expression
Case ListeValeurs1
[Instructions]
Case ListeValeurs2
[Instructions]
[Case
Else
Instructions]
End Select
ListeValeurs peut
être :
- une suite de valeurs :
1, 3, 5, 7, 9
- une fourchette : 0 To 9
- une plage : Is
>= 10
Une seule Expression
(ou une simple variable) est testée au début puis est comparée avec
les listes de valeurs.
A la
première concordance les instructions
correspondantes sont exécutées puis le programme sort de la structure.
Si aucune concordance
n’est trouvée les instructions placées après le Else sont exécutées.
Exemple :
Select Case CodeASCIICaractère
Case 65, 69, 73, 79, 85
MsgBox(" C’est une voyelle ")
Case 66 To 90
MsgBox(" C’est une consonne ")
Case Else
MsgBox(" Ce n’est pas une lettre ")
End Select
' Essayez
de trouver ce qui ne va pas dans ce test !
Structure Iif
C'est
exactement la fonction IF d'EXCEL.
Syntaxe : IIf (Condition,
ValeurSiVrai, ValeurSiFaux)
Exemple :
Dim
Note As Single
Dim
Réponse As String
Note = InputBox (" Tapez votre note ")
Réponse = IIf (Note >=
10, " Admis ", " Ajourné ")
MsgBox (Réponse)
Il
existe d’autres outils décisionnels (Switch, With, Choose
...) qui ne sont pas nécessaires pour un module de niveau 1.
|