0% ont trouvé ce document utile (0 vote)
109 vues6 pages

Structures Conditionnelles en C

Ce document décrit les structures conditionnelles en langage C, notamment les instructions if, else if, else et switch. Il explique la syntaxe et les fonctionnalités de base de ces structures.

Transféré par

Moez Ali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
109 vues6 pages

Structures Conditionnelles en C

Ce document décrit les structures conditionnelles en langage C, notamment les instructions if, else if, else et switch. Il explique la syntaxe et les fonctionnalités de base de ces structures.

Transféré par

Moez Ali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours : Algorithmique & Programmation C Chapitre : Les Structures Conditionnelles

COURS

ALGORITHMIQUE & PROGRAMMATION C

CHAPITRE :

LES STRUCTURES CONDITIONNELLES


IF - SWITCH
Cours : Algorithmique & Programmation C Chapitre : Les Structures Conditionnelles

1. INTRODUCTION
Un programme en langage C comporte 2 types d’instructions : les instructions de base et les
instructions de structuration du programme.

Les instructions de base permettent de manipuler des constantes, des variables ou bien des
expressions :
 Affectation,
 Lecture,
 Ecriture.

Les instructions de structuration du programme précisent comment s’enchaînent les


instructions de base :
 Structure conditionnelle (structure alternative),
 Structure répétitive.

2. LA STRUCTURE ALTERNATIVE EN C (IF-ELSE)


2.1 if – else
Il s'agit de l'instruction: Si (expression conditionnelle vraie) alors
<BLOC 1 D'INSTRUCTIONS>
Sinon
<BLOC 2 D'INSTRUCTIONS>
Finsi

oui condition non

vraie

Bloc 1 Bloc 2
d’instructions d’instructions

suite du programme

1
Cours : Algorithmique & Programmation C Chapitre : Les Structures Conditionnelles

Syntaxe:
if (<expression>)
<bloc 1 d'instructions>
else
<bloc 2 d'instructions>
 <expression> :
• une variable numérique
• une expression fournissant un résultat numérique
 <bloc d’instructions> :
• Un ensemble d’instructions compris entre {}
• Une seule instruction
 Valeur de l’<expression> :
• Si l’<expression> fournit une valeur différente de 0 alors le <bloc1
d’instructions> est exécuté.
• Si l ’<expression> fournit la valeur 0 alors le <bloc d’instructions 2> est exécuté

REMARQUE :

 le <bloc d’instructions> peut contenir d’autres instructions conditionnelles!


 les {} ne sont pas nécessaires lorsque les blocs ne comportent qu'une seule
instruction.
Exemple:
if (A > B)
max = A;
else
max = B;
2.2 if sans else
Le bloc "sinon" est optionnel: si (expression vraie)
Alors
<BLOC D'INSTRUCTIONS>

oui non
condition
vraie

bloc d'
instructions

suite du programme

2
Cours : Algorithmique & Programmation C Chapitre : Les Structures Conditionnelles

Syntaxe:
if (<expression>)
<bloc d'instructions>
Exemple:
if (A > 0)
Valeur_Absolue = A;
else
Valeur_Absolue = -A;

Peut être remplacée par :


Valeur_Absolue = A;
if (A < 0)
Valeur_Absolue = -A;

2.3 if…else imbriqué (if - else if - ... – else)

Autre utilisation de l’instruction if :


Syntaxe:
if (<expr1>)
<bloc1>
else if (<expr2>)
<bloc2>
...
else if (<exprN>)
<blocN>
else

<blocN+1>
 Les expressions <expr1>… <exprN> sont évaluées de haut vers le bas jusqu’à ce que
l’une d’elles soit vrai
 Si une expression est vérifiée, le bloc y lié est exécuté et le traitement s’arrête
 La dernière else traite le cas où aucune des conditions n’a été remplie (elle est
optionnelle).
Exemple:
if (note >= 10)
printf (" Succès \n");
else if (note >= 9)
printf (" Rachat \n");
else if (note >= 8)
printf (" Contrôle \n");
else
printf (” Echec \n” );

3
Cours : Algorithmique & Programmation C Chapitre : Les Structures Conditionnelles

3. LA STRUCTURE ALTERNATIVE EN C (SWITCH)

L'instruction switch permet des choix multiples uniquement sur des entiers (int) ou des
caractères (char).
Syntaxe:
switch (<variable>)
{
case <valeur1> : <bloc1>
break;
...
case <valeurN> : <blocN>
break;
default : <blocN+1>
}
 On teste si <variable> est égale à <valeur1> ... <valeurN> de haut vers le bas
 Si <variable> est égale à une valeur <valeuri>, le bloc y lié est exécuté et le
traitement s’arrête (break)
 Default traite le cas où aucune des conditions n ’a été remplie (elle est optionnelle et
pas de break).

REMARQUE :

 L’instruction switch correspond à une cascade d’instructions if ...else mais avec des
tests d'égalité uniquement.

Exemple1:
switch (trouve)
{ case 0 : printf (" Pas de solution\n");
break;
case 1: printf (" j’ai trouvé une solution \n");
break;
case 2: printf (" j’ai trouvé deux solutions \n");
break;
case -1:printf (" Impossible de résoudre \n");
break;
}

Exemple2:
switch (operateur)
{ case ‘+’ : printf (" c’est l’addition ");
break;
case ‘-’ : printf (" c’est la soustraction ");
break;
case ‘*’ : printf (" c’est la multiplication ");
break;
case ‘/’ : printf (" c’est la division ");
break;
default : printf (" opérateur non connu ");
}

4
Cours : Algorithmique & Programmation C Chapitre : Les Structures Conditionnelles

4. LES OPÉRATEURS CONDITIONNELS

Le langage C possède une paire d'opérateurs un peu exotiques qui peut être utilisée comme
alternative à if - else et qui a l'avantage de pouvoir être intégrée dans une expression:

Les opérateurs conditionnels

<expr1> ? <expr2> : <expr3>

* Si <expr1> fournit une valeur différente de zéro, alors la valeur de <expr2> est fournie comme
résultat.
* Si <expr1> fournit la valeur zéro, alors la valeur de <expr3> est fournie comme résultat.

Exemple :

La suite d'instructions :

if (A>B)
MAX=A;
else
MAX=B;
peut être remplacée par:
MAX = (A > B) ? A : B;

Employés de façon irréfléchis, les opérateurs conditionnels peuvent nuire à la lisibilité d'un
programme, mais si on les utilise avec précaution, ils fournissent des solutions très élégantes:

Exemple

printf("Vous avez %i carte%c \n", N, (N==1) ? ' ' : 's');

Les règles de conversion de types s'appliquent aussi aux opérateurs conditionnels ? : Ainsi, pour un
entier N du type int et un rationnel F du type float, l'expression

(N>0) ? N : F

va toujours fournir un résultat du type float, n'importe si N est plus grand ou plus petit que zéro!

Vous aimerez peut-être aussi