C-5-

Instructions conditionnelles
La logique booléenne

La logique booléenne est la base de l’évaluation des expression retournant une valeur Vraie ou Faux. Ce paragraphe est un bref rappel de quelques notions de base afin de bien comprendre l’utilisation des trois opérateurs booléens couramment employés le ET, le OU et le NON. En langage C Le résultat de la comparaison est une valeur booléenne. On associe à VRAI toute valeur non nulle et à FAUX la valeur nulle, ce qui signifie que toute expression dont le résultat est différent de 0 sera considérée comme valant VRAI et sera considérée comme FAUX si le résultat prend la valeur 0.

Les opérateurs logiques
  • le ET dont la notation est && s’applique sur deux opérandes. Son résultat est VRAI quand les deux opérandes sont VRAI; il est FAUX dans tous les autres cas.
  • le OU dont la notation est || s’applique sur deux opérandes. Son résultat est VRAI quand il suffit qu’un seul des deux opérandes est VRAI;
  • Le NON dont la notation est ! s’applique sur un opérande. Il donne le résultat inverse de son opérande.
Les opérateurs de comparaison

Les opérateurs de comparaison s’appliquent sur des entiers ou des caractères. et retiurnent ue valeur booléenne VRAI ou FAUX.

  • Egalité: Pour déterminer si deux expressions sont égales, on utilise l’opérateur ==. L’opérateur = (égal seul) est utilisé pour les affectations, pas pour la comparaison.
  • Différence: Pour déterminer si deux expressions sont différentes, on utilise l’opérateur != (un point d’exclamation, immédiatement suivi d’un symbole égal).
  • Supérieur strict, Supérieur ou Égal: Pour une comparaison stricte, en excluant l’égalité, on utilise, comme en mathématiques, le symbole >. Pour une comparaison non stricte, incluant le égal, on utilisera l’opérateur >= (constitué d’un symbole supérieur immédiatement suivi d’un symbole égal).
  • Inférieur strict, Inférieur ou Égal: Pour comparer des données de façon à déterminer si l’une est plus petite que l’autre, on utilisera les opérateurs < et <= selon que l’on veut une comparaison stricte ou non.
Les variables booléennes

Il est possible d’utiliser une variable booléenne pour lui affecter une expression booléenne complexe qui intègre plusieurs opérateurs comme le montre l’exemple ci-dessous

int age = 15;
int testAdo;
ado = ((age <= 18) &&  (age >= 14))
Structure Conditionnelle If
  • Exécution d’une seule instruction sous condition
if (expression booléenne) Instruction;
  • Exécution d’une ou plusieurs instructions sous condition
if (expression booléenne) {
   Instruction 1;
   Instruction 2;
}
  • Il est souvent nécessaire de pouvoir exécuter une série d’instructions dans le cas où une condition est vraie, et d’exécuter une autre série d’instructions dans le cas contraire.

if (expression booléenne) {
    Instruction 1;
    Instruction 2;
} else {
    Instruction 3;
}
  • Un programme pour illustrer les 3 formes de if

#include 
int main () {
int x = 5, y = 0, z = 3;
    int plusgrand = (x > y ); // Ceci est ne expression booléenne
    printf(“Test-1: Valeur de x %i et valeur de y %i  \n”, x, y);
    if (plusgrand) printf(“x est le plus grand que y qui vaut %i \n”, y);     

    if (x > y ) {
        printf(“Test-2: x est plus grand que y \n”);
    }
    printf(“Test-3: La valeur de z est %i  \n”, z);
    if ((x > y) && (z > 4)) {
        printf(“la condition (x > y) && (z > 4) est vraie  \n”);
    } else {
        printf(“la condition (x > y) && (z > 4) est fausse \n”);
    }
    z = 7;
    printf(“Test-4: La valeur de z est maintenant %i  \n”, z);
    if ((x > y) && (z > 4)) {
        printf(“la condition (x > y) && (z > 4) est vraie  \n”);
    } else {
    printf(“la condition (x > y) && (z > 4) est fausse \n”);
    }
}

Le choix multiple

Pour réaliser l’écriture d’un choix multiple en utilisant l’instruction if prenons l’exemple d’un programme délivrant la météo en fonction de 3 valeurs: 1 il faut beau, 2 il pleut; 3 il neige.


#include <stdio.h>
int main () {
    int meteo = 1;
    if (meteo == 1) {
        printf("Il fait beau  \n");
    }else{
        if (meteo == 2) {
            printf("Il pleut  \n");
        }else{
            if (meteo == 3) {
                printf("Il neige  \n");
            }else{
                printf("Il fait une temps bizarre  \n");
            }
        }
    }
}
Le choix multiple avec l’instruction switch

L’instruction de choix multiple switch permet de déclencher une série d’actions en fonction de valeurs précises. Elle peut avoir autant de choix que l’on souhaite. Le choix default est optionnel, les instructions lui correspondant seront exécutées si la variable de choix ne vaut aucune des valeurs précisées dans les autres cas, en son absence rien ne se passera.
L’instruction switch a pour avantage de simplifier dans ceratin cas l’écriture d’un choix multiple avec une instruction if.

#include <stdio.h>
int main () {
    int x = 20; 
    switch(x) 
    { 
        case 10: 
            printf("x vaut 10\n"); 
            break; 
        case 20: 
            printf("x vaut 20\n"); 
            break; 
        default: 
            printf("x ne vaut ni 10 ni 20\n"); 
            break; 
    } 
}

Notons que l’instruction break, que nous avons déjà étudié à la fin de chaque choix est optionnelle ; elle permet d’éviter que les choix suivants soient exécutés. Le break permet de quitter la structure de contrôle dès que un une action a été sélectionnée.

Pour en savoir plus: Instructions itératives