Structures conditionnelles
Séance 3
Année universitaire 2020/2021– Semestre 1
1
Nous avons vu …
• Introduction générale
▪ Programme,
▪ Langage de programmation,
▪ Algorithme, …
• Les variables
▪ Zone mémoire avec un Nom et un type
▪ Types Valeurs, Opérateurs, Taille
Utilisation des variables
1. Déclarer
2. Affecter ou saisir
3. Utiliser dans une expression ou Afficher
2
Ce n’est pas tout !
S’il n’y avait que les instructions simples
(affectation, saisie et affichage), …
… on ne pourrait écrire que des programmes simples.
Tous les langages de programmation proposent des
structures de contrôle pour les ruptures de séquences
1. Choisir un traitement parmi deux ou plusieurs
2. Répéter un traitement
3
Condition
Expression logique (booléenne)
simple ou combinée.
Exemples: (A<B), (M>10.0), (Delta <=0),
((Age > 18) && (Moy>= 14.0))
Optionne
l
if (Expression)
{
Liste d’instructions 1
}
else
Advertisement
{
Traitement à effectuer si l’expression est
vraie (toute valeur != 0). À la fin du
traitement, il y a saut après la partie else.
Liste d’instructions 2
}
Traitement à effectuer si l’expression est
fausse (valeur = 0).
1. L’un seulement des deux traitements sera effectué
2. On ne met pas de point-virgule après les accolades
3. En présence d’une instruction unique, les accolades peuvent être omises
4. On peut avoir des « if » imbriqués
4
Exemple
if (Moyenne >= 10.0)
{
printf ("Mabrouk ! Vous avez réussi.");
}
else
{
printf ("Une moyenne de %.2f et vous vouliez réussir !", Moyenne);
}
Attention : Moyenne doit avoir été initialisée avant le test
5
Exemple
Écrire un programme qui permet d’afficher le maximum de
deux entiers donnés.
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
Advertisement
printf ("Le maximum est : %d.", max);
return 0;
}
6
Exemple (suite)
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;
if sans else
}
7
If imbriqué
if ( <expr1> )
liste d’instructions 1
else if (<expr2>)
liste d’instructions 2
else if (<expr3>)
liste d’instructions 3
else if (<exprN>)
liste d’instructions n
else liste d’instructions n+1
8
Exemple
#include <stdio.h>
main()
{
int A,B;
printf("Entrez deux nombres entiers :");
scanf("%i %i", &A, &B);
Advertisement
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;
}
9
Travail à faire
Écrire un programme qui permet d’afficher le maximum de
trois entiers donnés.
10
Conditions multiples
switch (x)
{
case 1:
case 2:
case 3:
default:
}
Liste d’instructions1
…
break;
Liste d’instructions2
…
break;
Liste d’instructions3
break;
…
11
Conditions multiples
1. Les parenthèses qui suivent le mot clé switch indiquent
une expression dont la valeur est testée successivement par
chacun des case.
2. Lorsque l'expression testée est égale à une des valeurs
suivant un case, la liste d'instructions qui suit celui-ci est
exécutée.
3. L’un seulement des traitements sera effectué.
Advertisement
4. L’oubli de break; n’est pas considérée comme une erreur,
breakindique la sortie de la structure conditionnelle.
5. Lorsque l'on omet le break, l'exécution continue dans les
blocs suivants
6. Le mot clé defaultprécède la liste d'instructions qui sera
exécutée si l'expression n'est jamais égale à une des valeurs.
7. En présence d’une instruction unique, les accolades peuvent
être omises
12
Exemple (Switch)
Cette instruction est commode pour fabriquer des "menus":
#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': .......;
.......;
break;
case '2': ......;
......;
break;
case 'S': printf("\nFIN DU PROGRAMME ....");
break;
default : printf("\nERREUR DE CHOIX");
/ pas de break ici /
}
13