Les instructions de conditionnelles en langage de programmation B sont au nombres de deux et sont très particulières :
- if() ... else
- switch() {... case:}
if
L'instruction «if» permet le teste d'une condition et de choisir d'effectuer des instructions plutôt que d'autre dans le cas ou celle-ci serait vrai. Voici donc les syntaxes :
if(expression_vrai) instruction_exécuté_si_vrai; |
ou
if(expression_vrai) instruction_exécuté_si_vrai; else instruction_exécuté_si_faux; |
Vous y remarquerez donc après les syntaxes proposé que l'instruction «else» n'est pas obligatoire. Il est également à noter qu'une condition est vrai si elle est différente de zéro et de se fait qu'il n'y a pas de symbole de d'égalité classique (==, <=, >=). Enfin, on peut aussi bien exécuté une instruction seul ou bloc d'instruction contrairement à Perl.
switch
Lorsqu'on effectue une série de teste répétitive sur une même variable avec différente valeur de la manière suivante:
if(valeur == 1) instruction1_exécuté_si_vrai1; else if(valeur == 2) instruction_exécuté_si_vrai2; else if(valeur == 3) instruction_exécuté_si_vrai3; else instruction_exécuté_si_faux; |
On devrait plutôt tenté d'utiliser l'instruction «switch» laquelle permet une meilleure lisibilité en plus de simplifié la compréhension pour un programmeur externe à votre code. Ainsi, l'instruction «switch» permet d'effectuer une de nombreuses comparaison sur un unique résultat. Voici donc sa syntaxe:
switch(résultat) { case valeur1:instruction1_exécuté_si_vrai1; case valeur2:instruction_exécuté_si_vrai2; case valeur3:instruction_exécuté_si_vrai3; default: instruction_exécuté_si_faux; } |
L'instruction «default» n'est pas obligatoire, il est tout de même préférable de l'inclure pour prévenir une situation anormale ou d'erreur.
Hélas, le langage B manque de souplesse dans les valeurs autorisé pour «résultat», et sans vouloir traumatiser certaines personnes, il est seulement possible, dans un compilateur standard, de vérifier des valeurs: entière, d'un caractère ou d'une énumération. Les chaînes de caractères ne sont pas autorisé contrairement à des langages comme le PHP par exemple.