Ces structures sont nécessaires dans la mesure où le programmeur est très souvent amené à tester des valeurs et à orienter le programme selon ces valeurs.
Nécessité de ces structures
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 !