Vous êtes sur la page 1sur 10

Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

Chapitre 3 : Les instructions de contrôle

I. L’instruction conditionnelle : « If – else »


Cette instruction permet d’évaluer une condition et d’exécuter en conséquence un bloc
d’instructions.
Syntaxe :
La structure alternative en langage La structure alternative en C
algorithmique

si (<expression logique>) if ( <expression> )


alors {
<bloc d'instructions 1> <bloc d'instructions 1>
sinon }
<bloc d'instructions 2> else
fin si {
<bloc d'instructions 2>
}
 Si l'<expression> fournit une valeur
 Si l'<expression logique> a la valeur différente de zéro, alors le <bloc
logique vrai, alors le <bloc d'instructions 1> est exécuté.
d'instructions 1> est exécuté.  Si l'<expression> fournit la valeur zéro,
 Si l'<expression logique> a la valeur alors le <bloc d'instructions 2> est
logique faux, alors le <bloc exécuté.
d'instructions 2> est exécuté. Attention !!! Les ( ), devant « if », sont
obligatoires.

Remarques :
 Les { } ne sont pas nécessaires lorsque les blocs ne comportent qu'une seule instruction.
 On peut avoir des « if » imbriqués.

Exemples :
1.
if (a > b)
max = a;
else
max = b;
2.
if (A-B)
printf("A est différent de B\n");
else

M.EL Kastouri 1
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

printf("A est égal à B\n");


3.if (A > B)
{
AIDE = A;
A = C;
C = AIDE;
}
else
{
AIDE = B;
B = C;
C = AIDE;
}

Opérateurs de comparaison :

Ils servent à comparer deux nombres entre eux.

Libellé Opérateur
Inférieur <<<

Supérieur >

Egalité ==

Différent !=

Inférieur ou égal <=

Supérieur ou égal >=

Libellé Opérateur

Opérateurs logiques :

Ce sont des opérateurs logiques permettant de combiner des expressions logiques.

M.EL Kastouri 2
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

Libellé Libellé Opérateur


Et (and) &&

Ou (or) ||

Non (not) !

Remarque 1 :

If (a) if(a !=0)

If( !a) if(a==0)

Remarque 2 :

En combinant plusieurs structures if - else en une expression nous obtenons une structure qui
est très courante pour prendre des décisions entre plusieurs alternatives:

if ( <expr1> )
<bloc1>
else if (<expr2>)
<bloc2>
else if (<expr3>)
<bloc3>
else if (<exprN>)
<blocN>
else <blocN+1>

Les expressions <expr1> ... <exprN> sont évaluées du haut vers le bas jusqu'à ce que l'une
d'elles soit différente de zéro. Le bloc d'instructions y lié est alors exécuté et le traitement de la
commande est terminé.

Exemple :

#include <stdio.h>
main()
{
int A,B;
printf("Entrez deux nombres entiers :");
scanf("%d %d", &A, &B);
if (A > B)
printf("%d est plus grand que %d\n", A, B);
else if (A < B)
printf("%d est plus petit que %d\n", A, B);
else

M.EL Kastouri 3
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

printf("%d est égal à %d\n", A, B);


}

Exercices :

Ecrire un programme qui accepte l’entrée de trois entiers et les affiches dans l’ordre (le plus
petit le plus grand).

Du C au Python
Une structure de contrôle est associée à un bloc de code qui doit être ou non exécuté (structure
de décision) ou répété (structure itérative). Comme pour le corps des fonctions, le code
associée à une structure de contrôle est indiqué par l’indentation (généralement de quatre
espaces supplémentaires à gauche).

Structures de décision
L’instruction if
La structure de décision if exécute un bloc de code si l’expression associée est évaluée à True.

M.EL Kastouri 4
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

Pour simplifier l’écriture, beaucoup de types peuvent directement s’évaluer comme une
expression booléenne en python. Par exemple :
une variable ou un paramètre est équivalent à False s’il vaut None
un nombre est équivalent à True s’il est différent de 0
une chaîne de caractères est équivalente à True si elle n’est pas la chaîne vide ""
une liste, un ensemble, un dictionnaire ou un tuple est équivalent à True s’il n’est pas vide

L’instruction else
Il est possible d’ajouter un bloc else qui sera exécuté si la condition est évaluée à False :

M.EL Kastouri 5
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

L’instruction elif
Si on souhaite représenter plusieurs alternatives, il est possible d’utiliser le mot-clé elif :

Il est possible de créer des expressions booléennes complexes en les combinant grâce aux
mots-clés and ou or ou en chaînant les opérateurs de comparaison :

L’opérateur ternaire
Il est possible d’affecter une variable à partir d’une décision en l’exprimant sur une seule
ligne :

II. Instruction « switch »


C’est un moyen qui permet des choix multiples uniquement sur des entiers ou des
caractères.
Syntaxe :
switch (choix)
{
case cst1 : liste d'instructions 1 ;
break;
case cst2 : liste d'instructions 1 ;
break;
….
default : liste instructions N ;
}

Remarques :
Le bloc default n’est pas obligatoire.
« choix » doit être de type char , int ou long.
choix, cst1, cst2 et les autres valeurs sont de même type.

M.EL Kastouri 6
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

L’instruction break permet de sortir de l’instruction switch. Elle est importante car si on ne la
met pas après chaque cas d’exécution alors toutes les instructions après ce cas seront exécutées
(bien sur s’ils ne sont pas suivis d’une autre instruction break).
Exemples :
1.
#include <stdio.h>
main( )
{
int nombre;
printf("Entrer un nombre entier entre 2 et 5");
scanf("%d", &nombre);
switch (nombre)
{
case 2 : printf("\n votre nombre est 2");
break;
case 3 : printf("\n votre nombre est 3");
break;
case 4 : printf("\n votre nombre est 4");
break;
case 5 : printf("\n votre nombre est 5");
break;
default : printf("\n Nombre erroné");
}
}
2.
#include <stdio.h>
main( )
{
Char car;
printf("Entrer votre caractère");
scanf("%c", &car);

M.EL Kastouri 7
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

switch( car )
{
case ‘ ’:
case ‘,’:
case ‘.’:
printf(" Séparateur" ) ;
break ;
case ‘<’:
case ‘>’:
printf(" Opérateur de comparaison" ) ;
break ;
default : printf(“Autre”)
}

Du C en Python

Les instructions match-case sont arrivées avec la version 3.10 de Python et PEP 634. C’est
l’équivalent du switch-case des autres langages de programmation. Cette instruction de
“Filtrage par motif structurel” permet de vérifier qu’une variable correspond à une des valeurs
définies.

match-case se présente comme ça en Python :

Avant Python 3.10, on était obligé d’avoir des conditions if pour tester si le contenu d’une
variable matchait un pattern.

M.EL Kastouri 8
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

Maintenant avec l’instruction match, on peut éviter les instructions if-elif-else pour avoir un
code plus lisible.

M.EL Kastouri 9
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle

il peut être utile de créer sa propre instruction switch/match case. On peut faire ça en créant
une fonction qui prend un paramètre et le test contre différents patterns.

 def est le mot clé qui permet de créer une fonction en python
 switch est le nom de la fonction
 valeur est le paramètre de la fonction
 if, elif et else sont des mots clés de condition
 pattern_x sont les valeurs avec lesquelles on compare notre variable valeur
 expression_x est le code qui sera exécuté ou retourné si la comparaison est vraie
 expression_par_defaut est ce qui sera exécuté si valeur ne correspondait à aucun pattern

M.EL Kastouri 10

Vous aimerez peut-être aussi