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.

Structures conditionnelles

Document source

Structures conditionnelles

Programming Basics · PDF · 13 pages · 2020

Afficher l'aperçu du document

Consulter le document original →

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. Sans break;, l’exécution continue dans les cases suivants (effet de "fall-through").
  • Le default contient 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 if teste une condition et exécute un bloc selon que la condition est vraie ou fausse.
  • Les if peuvent être imbriqués ou enchaînés avec else if pour gérer plusieurs cas.
  • Le switch est adapté pour tester une expression sur plusieurs valeurs discrètes et simplifie la lecture.
  • Le mot-clé break; est indispensable dans un switch pour é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é.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions