Structures conditionnelles
Cette séance porte sur les structures conditionnelles en programmation, un concept fondamental permettant de contrôler le déroulement d’un programme en fonction de conditions logiques. Elle s’inscrit dans un cours d’introduction à la programmation, après l’étude des variables et des instructions simples.
D'après le document Structures conditionnelles
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Programming Basics · PDF · 13 pages · 2020
Afficher l'aperçu du document
Cette séance porte sur les structures conditionnelles en programmation, un concept fondamental permettant de contrôler le déroulement d’un programme en fonction de conditions logiques. Elle s’inscrit dans un cours d’introduction à la programmation, après l’étude des variables et des instructions simples.
Introduction aux structures conditionnelles
Les instructions simples telles que l’affectation, la saisie et l’affichage ne suffisent pas à écrire des programmes complexes. Pour cela, les langages de programmation proposent des structures de contrôle qui permettent de modifier le flux d’exécution. Parmi ces structures, les conditions permettent de choisir entre plusieurs traitements selon la valeur d’une expression logique.
Une expression conditionnelle est une expression booléenne, c’est-à-dire qui peut être vraie ou fausse. Par exemple :
- (A < B)
- (M > 10.0)
- (Delta <= 0)
- ((Age > 18) && (Moy >= 14.0))
La structure conditionnelle de base est le if :
if (Expression)
{
Liste d’instructions 1
}
else
{
Liste d’instructions 2
}
Si l’expression est vraie (valeur différente de zéro), la première liste d’instructions est exécutée, sinon c’est la seconde. Seul un des deux traitements est réalisé. Il est possible d’omettre les accolades si l’instruction est unique, et d’imbriquer plusieurs if.
Exemples simples d’utilisation du if
Voici un exemple qui affiche un message selon que la moyenne est supérieure ou égale à 10 :
if (Moyenne >= 10.0)
{
printf("Mabrouk ! Vous avez réussi.");
}
else
{
printf("Une moyenne de %.2f et vous vouliez réussir !", Moyenne);
}
Il est important que la variable Moyenne soit initialisée avant ce test.
Détermination du maximum entre deux entiers
Un programme classique utilisant une condition est celui qui affiche le maximum entre deux entiers. Deux méthodes sont possibles :
Première méthode :
#include <stdio.h>
int main()
{
int a, b, max;
printf("\n Donnez a : "); scanf("%d", &a);
printf("\n Donnez b : "); scanf("%d", &b);
max = b;
if (b > a)
max = a;
else
printf("Le maximum est : %d.", max);
return 0;
}
Deuxième méthode :
#include <stdio.h>
int main()
{
int a, b, max;
printf("\n Donnez a : "); scanf("%d", &a);
printf("\n Donnez b : "); scanf("%d", &b);
max = a;
if (b > a)
max = b;
printf("Le maximum est : %d.", max);
return 0;
}
La deuxième méthode est plus simple et évite l’usage d’un else inutile.
Les if imbriqués et les conditions multiples
Pour gérer plusieurs cas, on peut imbriquer des if avec des else if :
if (<expr1>)
liste d’instructions 1
else if (<expr2>)
liste d’instructions 2
else if (<expr3>)
liste d’instructions 3
...
else
liste d’instructions n+1
Par exemple, pour comparer deux nombres entiers A et B :
#include <stdio.h>
int main()
{
int A, B;
printf("Entrez deux nombres entiers :");
scanf("%i %i", &A, &B);
if (A > B)
printf("%i est plus grand que %i\n", A, B);
else if (A < B)
printf("%i est plus petit que %i\n", A, B);
else
printf("%i est égal à %i\n", A, B);
return 0;
}
Travail proposé
Un exercice classique est d’écrire un programme qui affiche le maximum de trois entiers donnés. Cela nécessite d’utiliser des conditions imbriquées ou multiples.
Les conditions multiples avec switch
Pour tester une expression sur plusieurs valeurs discrètes, la structure switch est très utile :
switch (x)
{
case 1:
Liste d’instructions1
break;
case 2:
Liste d’instructions2
break;
case 3:
Liste d’instructions3
break;
default:
Liste d’instructions par défaut
}
Les règles principales sont :
- L’expression entre parenthèses est évaluée et comparée aux valeurs des
case. - Lorsque la valeur correspond à un
case, les instructions associées sont exécutées. - Un seul traitement est effectué.
- Le mot-clé
break;permet de sortir de la structure conditionnelle. Sansbreak;, l’exécution continue dans les cases suivants (effet de "fall-through"). - Le
defaultcontient les instructions exécutées si aucune valeur ne correspond. - Les accolades peuvent être omises si l’instruction est unique.
Exemple d’utilisation du switch
Le switch est particulièrement adapté pour créer des menus. Par exemple :
#include <stdio.h>
void main()
{
char choix;
printf("LISTE PAR GROUPE TAPER 1\n");
printf("LISTE ALPHABETIQUE TAPER 2\n");
printf("POUR SORTIR TAPER S\n");
printf("\nVOTRE CHOIX: ");
choix = getchar();
switch(choix)
{
case '1':
// instructions pour le choix 1
break;
case '2':
// instructions pour le choix 2
break;
case 'S':
printf("\nFIN DU PROGRAMME ....");
break;
default:
printf("\nERREUR DE CHOIX");
// pas de break ici
}
}
Points clés
- Les structures conditionnelles permettent de contrôler le flux d’exécution selon des expressions logiques.
- Le
ifteste une condition et exécute un bloc selon que la condition est vraie ou fausse. - Les
ifpeuvent être imbriqués ou enchaînés avecelse ifpour gérer plusieurs cas. - Le
switchest adapté pour tester une expression sur plusieurs valeurs discrètes et simplifie la lecture. - Le mot-clé
break;est indispensable dans unswitchpour éviter l’exécution en cascade des cas suivants. - Les accolades peuvent être omises pour une instruction unique, mais il est souvent préférable de les garder pour la clarté.
Commentaires
Aucun commentaire pour le moment. Posez la première question.