Académique Documents
Professionnel Documents
Culture Documents
2 octobre 2019
1/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives
LEs structures répetitives
Les instructions de branchement non conditionnel
Plan du Cours
2/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Introduction
Introduction
Les structures de contrôle définissent la suite dans laquelle
les instructions sont effectuées. Dans ce chapitre, nous allons
voir comment les instructions de sélection connues fonctionnent en
C et nous allons faire connaissance d’un couple d’opérateurs
spécial qui nous permet de choisir entre deux valeurs à l’intérieur
d’une expression.
C
onstatons déjà que la particularité la plus importante des
instructions de contrôle en C est le fait que les ’conditions’ en C
peuvent être des expressions quelconques qui fournissent un
résultat numérique. La valeur zéro correspond à la valeur logique
faux et toute valeur différente de zéro est considérée comme 3/67
vrai. Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Outline
4/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
L’instruction SI
Il s’agit de l’instruction :
si (expression conditionnelle vraie)
alors BLOC 1 D’INSTRUCTIONS
sinon BLOC 2 D’INSTRUCTIONS
Organigramme
5/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
L’instruction SI
Syntaxe en C :
if (expression)
{
............; /* bloc 1 d'instructions */
............;
............;
}
else
{
............; /* bloc 2 d'instructions */
............;
............;
} 6/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
L’instruction SI
Syntaxe en C :
if (expression)
{
............; /* bloc d'instructions */
............;
............;
}
Remarque :
les {} ne sont pas nécessaires lorsque les blocs ne comportent 7/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Outline
8/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
if ( <expr1> )
<bloc1>
else if (<expr2>)
<bloc2>
else if (<expr3>)
<bloc3>
else if (<exprN>)
<blocN> 9/67
else <blocN+1>
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Les expressions < expr 1 > ... < exprN > sont évaluées du
haut vers le bas jusqu’à ce que l’une d’elles soit différente de
zéro. Le bloc d’instructions y lié est alors exécuté et le
traitement de la commande est terminé.
La dernière partie else traite le cas où aucune des conditions
n’a été remplie. Elle est optionnelle, mais elle peut être utilisée
très confortablement pour détecter des erreurs.
10/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
#include<stdio.h>
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); 11/67
return 0; Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Outline
12/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
test de ET LOGIQUE :
test de OU LOGIQUE
if ((expression1) || (expression2))
" si l'expression1 OU l'expression2 est vraie "
14/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
if (!(expression1))
" si l'expression1 est fausse "
15/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
16/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Outline
17/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
18/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Exemple
La suite d’instructions
if (A>B)
MAX=A;
else
MAX=B;
peut être remplacée par :
MAX = (A > B) ? A : B;
19/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Conseil
Employés de façon irréfléchis, les opérateurs conditionnels peuvent
nuire à la lisibilité d’un programme, mais si on les utilise avec
précaution, ils fournissent des solutions très élégantes.
Exemple
20/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Outline
21/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
22/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Syntaxe suite :
.
. etc ...
.
default: .......; //- aucune des valeurs
précédentes: executer ce bloc
........; // d'instructions, pas de "break"
ici.
}
24/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Remarques
le bloc ”default” n’est pas obligatoire.
s’il existe un énoncé case avec une constante qui égale la
valeur de expression, le contrôle est transféré à l’instruction
qui suit cet énoncé.
si un tel case n’existe pas, et si l’énoncé default existe, alors le
contrôle est transféré à l’instruction qui suit l’énoncé default ;
si la valeur de expression ne correspond à aucun case et s’il
n’y a pas d’énoncé default, alors aucune instruction n’est
exécutée.
Cette instruction est commode pour fabriquer des ”menus”.
25/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Remarques
Lorsqu’il y a branchement réussi à un énoncé case, toutes les
instructions qui le suivent sont exécutées, jusqu’à la fin du
bloc ou jusqu’à une instruction de rupture (break).
26/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
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;
27/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
L’INSTRUCTION SI ... ALORS ... SINON ...
Les structures alternatives L’INSTRUCTION SI ... ALORS ... SINON SI ...
LEs structures répetitives LES OPERATEURS LOGIQUES
Les instructions de branchement non conditionnel Les opérateurs conditionnels
L’INSTRUCTION AU CAS OU ... FAIRE ...
Exemple :
Introduction
Introduction
Les boucles permettent de réepéter une série d’instructions
tant qu’une certaine condition n’est pas vérifiée.
En C, nous disposons de trois structures qui nous permettent
la définition de boucles conditionnelles :
1 la structure : while
2 la structure : do - while
3 la structure : for
29/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
Outline
30/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
while
Organigramme
31/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
while
Syntaxe en C :
while (expression)
{
............; /* bloc d'instructions */
............;
............;
}
32/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
while
33/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
while
Remarque :
On peut rencontrer la construction suivante : while (expression) ;
terminée par un ; et sans la présence du bloc d’instructions.
Cette construction signifie : ”tant que l’expression est vraie
attendre”.
34/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
while
Exemple
le programme suivant imprime les entiers de 1 à 9.
i = 1;
while (i < 10)
{
printf("\n i = %d",i);
i++;
}
35/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
Outline
36/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
do ... while
Organigramme
37/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
do ... while
Syntaxe en C :
do
{
............; /* bloc d'instructions */
............;
............;
}
while (expression);
38/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
do ... while
39/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
do ... while
Exemple
int n, div;
printf("Entrez le nombre à diviser : ");
scanf("%i", &n);
do
{
printf("Entrez le diviseur (!0) : ");
scanf("%i", &div);
}
while (!div);
printf("%i / %i = %f\n", n, div, (float)n/div);
40/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
Outline
41/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
Il s’agit de l’instruction :
pour (initialisation ; condition de continuité vraie ;modification)
{BLOC D’INSTRUCTIONS}
Organigramme
42/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
Syntaxe en C :
43/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
44/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
Remarques :
Les ne sont pas nécessaires lorsque le bloc ne comporte
qu’une seule instruction.
Les 3 instructions du for ne portent pas forcément sur la
même variable.
Une instruction peut être omise, mais pas les ;
Les trois expressions utilisées dans une boucle for peuvent être
constituées de plusieurs expressions séparées par des
virgules(,). Cela permet par exemple de faire plusieurs
initialisations à la fois.
45/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
Exemples :
46/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
Exemples :
Le plus souvent, for est utilisé comme boucle de comptage :
int I;
for (I=0 ; I<=20 ; I++)
printf("Le carré de %d est %d \n", I, I*I);
47/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
<expr1>;
while ( <expr2> )
{
<bloc d'instructions>
<expr3>;
}
48/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
La boucle
for(;;)
{
...........; /* bloc d'instructions */
............;
............;
}
est une boucle infinie (répétition infinie du bloc d’instructions).
49/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
for ...
resultat = 0;
for(i = 0 ; resultat<30 ; i++)
{
............; /* bloc d'instructions */
............;
............;
resultat = resultat + 2*i;
}
50/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
Outline
51/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
LA BOUCLE TANT QUE ... FAIRE ...
Les structures alternatives
L’INSTRUCTION REPETER ... TANT QUE ...
LEs structures répetitives
L’INSTRUCTION POUR ...
Les instructions de branchement non conditionnel
Choix de la structure répétitive
Outline
54/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
break
break
Au sein d’une instruction de branchement multiple switch.
L’instruction break peut, plus généralement, être employée à
l’intérieur de n’importe quelle boucle.
Attention
Elle permet d’interrompre le déroulement de la boucle, et
passe à la première instruction qui suit la boucle.
break termine l’instruction do, for, switch ou while le plus près.
En cas de boucles imbriquées, break fait sortir de la boucle la
plus interne.
55/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
break
Par exemple, le programme suivant :
main()
{
int i;
for (i = 0; i < 5; i++)
{
printf("i = %d\n",i);
if (i == 3)
break;
}
printf("valeur de i a la sortie de la boucle = %d\n",
i);
56/67
} Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
break
Résultats
imprime à l'écran
i = 0
i = 1
i = 2
i = 3
valeur de i a la sortie de la boucle = 3
57/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
Outline
58/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
continue
continue
L’instruction continue permet de passer directement au tour
de boucle suivant, sans exécuter les autres instructions de la
boucle.
continue passe à la prochaine itération des instructions do, for
ou while
59/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
continue
Par exemple, le programme suivant :
main()
{
int i;
for (i = 0; i < 5; i++)
{
if (i == 3)
continue;
printf("i = %d\n",i);
}
printf("valeur de i a la sortie de la boucle = %d\n",
i);
60/67
} Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
break
Résultats
imprime
i = 0
i = 1
i = 2
i = 4
valeur de i a la sortie de la boucle = 5
61/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
Outline
62/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
goto
goto
L’instruction goto permet d’effectuer un saut jusqu’à
l’instruction étiquette correspondante.
goto passe directement à l’étiquette spécifiée
étiquette : instruction
Une étiquette est un identificateur ;
elle doit être placée devant une fonction, séparée de celle-ci
par un caractère deux points.
63/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
goto
goto
Une étiquette n’a pas à faire l’objet d’une déclaration
explicite ; il suffit de l’écrire devant une instruction pour qu’elle
soit automatiquement connue comme un nom à porté locale.
Elle est alors utilisable partout dans la fonction où elle
apparait (avant et après l’instruction qu’elle préfixe) et elle
reste inconnue en dehors de la fonction.
64/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
goto
L’instruction :
goto étiquette ;
transfère le contrôle à l’instruction préfixée par l’étiquette en
question.
Théoriquement, tout algorithme peut être programmée sans
utiliser l’instruction goto.
Elle est utilisée pour obtenir l’abandon d’une structure de
contrôle (exemple : une boucle) depuis l’intérieur de la
structure.
Un tel emploi de goto est avantageusement remplacée en C
par l’utilisation des instructions return, break et continue.
Il est donc rare que l’on ait besoin de l’instruction goto en C.
65/67
Elle ne se révèle utile que lorsqu’il faut abandonner plusieurs
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles
Les structures alternatives Branchement non conditionnel break
LEs structures répetitives Branchement non conditionnel continue
Les instructions de branchement non conditionnel Branchement non conditionnel goto
goto
The End
67/67
Pr Mostafa SAADI – ENSAK Programmation C : Conditions et Boucles