Les instructions de conditionnel en langage Turbo C sont au nombres de deux et sont très particulière :
- 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; |
ou
if(expression_vrai1) instruction_exécuté_si_vrai1; elseif(expression_vrai2) instruction_exécuté_si_vrai2; ... rajouter des «elseif» autant que nécessaire ... else instruction_exécuté_si_faux; |
Vous y remarquerez donc après les syntaxes proposé que les instructions «else» ou «elseif» ne sont 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.
Exemple
Cet exemple permet de tester une condition vrai :
on obtiendra le résultat suivant :
La condition est vraiswitch
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; elseif(valeur == 2) instruction_exécuté_si_vrai2; elseif(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;break; case valeur2:instruction_exécuté_si_vrai2;break; case valeur3:instruction_exécuté_si_vrai3;break; default: instruction_exécuté_si_faux;break; } |
L'instruction «break» est empêche l'exécution suivante, et en dépit qu'elle n'est pas obligatoire elle dans la plupart des cas présentes. 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 C 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.
Exemple
Cet exemple permet d'évaluer la valeur de la variable «a» :
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int a = 2;
- switch(a) {
- case 1:case 2:case 3:
- printf("Entre 1 et 3\n");
- break;
- case 4:case 5:case 6:
- printf("Entre 4 et 6\n");
- break;
- case 7:
- printf("C'est 7\n");
- break;
- default:
- printf("Inférieur ou égale à 0 ou supérieur à 8\n");
- break;
- }
- return 0;
- }
on obtiendra le résultat suivant :
Entre 1 et 3