Leçon 5 Switch
Leçon 5 Switch
Leçon 5 Switch
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
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 :
D. Kourouma 8