Académique Documents
Professionnel Documents
Culture Documents
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
Opérateurs de comparaison :
Libellé Opérateur
Inférieur <<<
Supérieur >
Egalité ==
Différent !=
Libellé Opérateur
Opérateurs logiques :
M.EL Kastouri 2
Cours Algorithme et Programmation C Chapitre 3 : Les instructions de contrôle
Ou (or) ||
Non (not) !
Remarque 1 :
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
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 :
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.
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