Vous êtes sur la page 1sur 8

2019-2020

Langage C
[Leçon 5]

D. Kourouma 1
Choix multiple

Nous avons vu en algorithmique que lorsque la résolution d’un problème nécessite un choix multiple, la structure
«cas» ou «selon» dite choix multiple est la mieux appropriée.

Syntaxe :

Cas de « variable »
valeur_1: instruction_1;
valeur_2: instruction_2;
...
valeur_n: instruction_n
sinon
instruction_par_default
fincas

Ce choix multiple marche uniquement sur des variables de type entier ou caractères

La structure choix multiple peut se traduire en C de la manière suivante :


switch (variable)

D. Kourouma 2
{
case valeur1 : Instr1; break;
case valeur2 : Instr2; break;
...
case valeurN : InstrN; break;
default : Instr_par_defaut ;

}
Remarque
 Instruction switch correspond à une cascade d’instructions if ...else ;
 Variable à tester doit être uniquement de type int et obligatoirement dans une paire de parenthèses ( );
 Le bloc "default" n'est pas obligatoire et ne contient pas break.

D. Kourouma 3
Exemple 1 :
Le programme qui affiche le nom du jour de la semaine correspondant à
un numéro de jour compris entre 1 et 7 peut s’écrire :

#include <stdio.h>
#include <stdlib.h>

int main()
{
int numero;
printf("Donner un numero du jour");
scanf("%d", &numero) ;
switch(numero)
{
case 1 : printf("Lundi") ; break ;
case 2 : printf("Mardi") ; break ;
case 3 : printf("Mercredi") ; break ;
case 4 : printf("Jeudi") ; break ;
case 5 : printf("Vendredi") ; break ;
case 6 : printf("Samedi") ; break ;
case 7: printf("Dimanche") ; break ;
D. Kourouma 4
default : printf("Erreur !!! Ce numero ne correspond a aucun jour ") ;
}
return 0 ;
}

D. Kourouma 5
Exemple 2 : Tester ce programme et corriger les éventuelles erreurs :
#include<stdio.h>
#include<stdlib.h>
Int main ()
{
int a,b,op;
printf("saisir le premier nombre ");
scanf("%d",a);
printf("saisir le 2eme nombre");
scanf("%d",&b);
printf("Menu\n 1- Addition\n 2- Soustraction\n 3- Multiplication\n 4- Quotient\n
choisir une opérateur :\n");
scanf("d",&op);
switch(op);
{ case1 : printf("%d + %d = %d\n",a,b,(a+b)); break;
case 2: printf("%d - %d = %d\n",a,b,(a-b)); break;
case 3: printf("%d * %d = %d\n",a,b,(a*b)); break;
case 4: printf("%d / %d = %f\n",a,b,((float)a/b)); break;
default : printf("mauvais choix\n");
}
system("pause";
D. Kourouma 6
return
}

D. Kourouma 7
Exercice d’application
Ecrire un programme permettant de calculer la racine carrée, l’inverse d’un
nombre réel, le plus grand de deux réels, le plus petit de deux réels et la
moyenne de deux réels à partir du menu suivant :

*************** Menu *****************


1-------> Plus grand de deux réels
2-------> Plus petit de deux réels
3-------> Inverse d’un réel
4-------> Moyenne de deux réels
5-------> Racine Carrée d’un réel
6-------> Quitter
**************************************
Entrez votre choix (1, 2, 3, 4, 5, 6) ?

Le programme doit afficher le message « mauvais choix » lorsqu’un utilisateur


saisira un nombre qui ne fait pas partir du menu et affichera le message
« merci c’est fini » avant de quitter.

D. Kourouma 8

Vous aimerez peut-être aussi