Structures de Controles

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 41

05.

Structures de contrôles
Structures de contrôles (1)
1. Introduction
Un programme est constitué d’un ensemble d'instructions qui sont
exécutées systématiquement dans l’ordre.
Pour casser cette linéarité (ordre), les programmes informatiques se sont
dotés d’une relative d’intelligence : « Les structures de contrôles », qui leurs
permettent :

 D’effectuer des tests (structures de contrôles conditionnelles),


 De faire des boucles (structures de contrôles itératives).
Structures de contrôles (2)
2. Structures de contrôles conditionnelles (Tests)
Une structure de contrôle conditionnelle est un « bloc d'instructions »
permettant d'exécuter une séquence d'instruction seulement si, si une ou
des conditions sont évaluées vraies. Il existe quatre (4) formes
d’instructions conditionnelles :
 Forme simple (If….End If),
 Forme alternative (If et Else…End),
 Forme généralisée(If, ElseIf…, ElseIf,.. et Else..End If)
 Forme à choix multiple (Select Case ... End Select).
NB : <condition> doit renvoyer une valeur booléenne, True ou False.
Structures de contrôles (3)
2. Structures de contrôles conditionnelles
 Forme simple (If….End If)
Son traitement dépend d’une seule [ condition], si elle est évaluée vraie, les
instructions dans son bloc sont exécutées c’est-à-dire celui avec les mots-
clés « If …End If », si non elles sont ignorées et l’exécution du programme
se poursuit après son bloc.

- Syntaxe If [condition] then


Instruction 1
...
Instruction n
End If
Structures de contrôles (4)
2. Structures de contrôles conditionnelles
 Forme simple (If….End If)
- Ex.
Structures de contrôles (5)
2. Structures de contrôles conditionnelles
 Forme alternative (If et Else…End)
Son traitement dépend d’une seule [condition], mais à deux (2) états, si elle
est évaluée vraie, les instructions dans le 1er bloc sont exécutées c’est-à-dire
celui avec le mot-clé « If », si non celles du deuxième bloc sont exécutées
c’est-à-dire celui avec les mots-clés « Else…End If ».

- Syntaxe If [condition] then


Instructions(s)
Else
Instruction (s)
End If
Structures de contrôles (6)
2. Structures de contrôles conditionnelles
 Forme alternative (If et Else…End)
- Ex.
Structures de contrôles (7)
2. Structures de contrôles conditionnelles
 Forme généralisée(If, ElseIf…, ElseIf,.. et Else..End If)
Son traitement dépend de plusieurs [conditions], si l’une d’entre elles est
évaluée vraie, les instructions de son bloc sont exécutées, mais entrainera
l’annulation des autres conditions.
NB : Les conditions sont lues dans l'ordre jusqu'à ce que l'une d'entre elles
soit évaluée vraie, si rien n’est évaluée vraie, les instructions du dernier bloc
sont exécutées c’est-à-dire celui avec le mot-clé « Else ». La première
condition utilise le mot-clé « If », les autres utilisent le mot-clé « ElseIf » en
hormis la dernière qui utilise les mots-clés « Else…End IF ».
Structures de contrôles (8)
2. Structures de contrôles conditionnelles
 Forme généralisée(If, ElseIf…, ElseIf,.. et Else.. End If)

- Syntaxe If [condition] then


Instructions(s)
ElseIf [condition] then
Instruction (s)
……..
ElseIf [condition] then
Instruction (s)
Else
Instruction (s)
End If
Structures de contrôles (9)
2. Structures de contrôles conditionnelles
 Forme généralisée(If, ElseIf…, ElseIf,.. et Else.. End If)

- Ex.
Structures de contrôles (10)
2. Structures de contrôles conditionnelles
 Conditions composées
Certains problèmes exigent parfois de formuler des conditions qui ne peuvent
pas être exprimées sous la forme simple c’est-à-dire une seule condition.
Par exemple si on veut on traiter le statut des étudiant selon leur moyenne avec
comme condition : Si la moyenne est comprise entre [0 et 7] : «Renvoyer», entre
[8 et 9] : «Ajourné» et supérieure ou égale à [10] : «Passe».
En fait ce problème cache non pas une, mais deux conditions pour chaque bloc et
ce sont les « opérateurs logiques » qui nous permettent de régler ce problème.
Structures de contrôles (11)
2. Structures de contrôles conditionnelles
 Conditions composées (Rappel : Les opérateurs logiques)
Structures de contrôles (12)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select).
Son traitement dépend de plusieurs conditions, si l’une d’entre elle est
évaluée vraie, les instructions de son bloc sont exécutées et annule
automatiquement les autres conditions, comme pour « la Forme
généralisée ».
NB : Elle est généralement utilisé pour éviter des « ElseIf » à répétition dans
un programme afin d’alléger son code. La notion de choix multiple est mise
en œuvre grâce à : Select Case (Expression) ». L'expression doit rendre une
valeur d'un type discret (entier, décimal, booléen, caractère ou une chaîne
de caractères. Ici, l'expression est une variable.
Structures de contrôles (13)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select).
- Syntaxe
Select Case « Expression »
Case argument 1
Instruction(s)
Case argument 2
Instruction(s)
...
Case Else
'Instruction(s) si aucuns arguments précédents ne corresponds
End Select
Structures de contrôles (14)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select).
Ex.
Structures de contrôles (15)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select).
Ex.
Structures de contrôles (16)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select).
Les valeurs à tester dans les différents case peuvent être regroupées.
NB : VB .NET est sensible à la casse, donc « OUI » est différent de « oui ».
Ex.
Structures de contrôles (17)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select).
Le mot clé To est utilisé pour définir un argument sous forme d’intervalle.

Ex.
Structures de contrôles (18)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select).
Le mot clé Is permet à un argument d’utiliser un operateur de comparaison.
Ex.
Structures de contrôles (19)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select)
Attention : Select Case n’utilise pas les operateurs logiques: And, Or et Not.
Mais, il est possible de combiner les différents formats de Case à l’intérieur
d’un même Select Case.

Ex. Case 101, 102, 201 To 205, Is > 300


Si cette expression est mise dans un «Select Case», il renvoie une valeur
égale à 101, 102, 201, 202, 203, 204, 205, ou supérieure à 300.
Structures de contrôles (20)
2. Structures de contrôles conditionnelles
 Forme à choix multiple (Select Case ... End Select)
Ex.
Structures de contrôles (21)
3. Structures de contrôles itératives (Boucles)
Une structures de contrôle itérative (boucle) est un bloc d'instruction
permettant de répéter un certain nombre de fois la même séquence
d'instruction tant que la ou les conditions sont évaluées vraies.
Il existe plusieurs types d’instructions itératives comme :
 While ... End While
 Do While ... Loop
 For ... Next
 For Each ... Next
Structures de contrôles (22)
3. Structures de contrôles itératives (Boucles)
 Boucle While ... End While
Elle exécute la séquence d'instruction de son bloc en les répétant tant que
la ou les conditions sont évaluées vraies.
La ou les conditions sont évaluées avant chaque passage dans son bloc et à
chaque fois qu’elle(s) sont évaluée vraies, le programme exécute la même
séquence d’instruction.
Mais une fois que la ou les condition sont évaluées fausses, l’exécution du
programme se poursuit hors de son bloc.
Structures de contrôles (23)
3. Structures de contrôles itératives (Boucles)
 Boucle While ... End While
Avec la boucle (While ... End While), il faut respecter certaines règles :
 Toujours initialiser le compteur de la boucle avant d’entrer dans le bloc,
 Incrémenter le compteur de la boucle à la fin des instructions,
 Contrôler la valeur du compteur dans la condition de la boucle.

Attention, il existe des boucles infinies et des boucles qui ne s’exécutent


jamais.
Structures de contrôles (24)
3. Structures de contrôles itératives (Boucles)
 Boucle While ... End While
 Qu’est ce qu’une boucle infinie ?
C’est une boucle dont la ou les condition(s) seront toujours évaluées vraies,
par conséquent le ou les instruction(s) de son bloc seront toujours
exécutées sans interruption.

 Qu’est ce qu’une boucle qui ne s’exécute jamais ?


C’est une boucle dont la ou les condition(s) seront toujours évaluées
fausses, par conséquent le ou les instruction(s) de son bloc ne seront jamais
exécutées.
Structures de contrôles (25)
3. Structures de contrôles itératives (Boucles)
 Boucle While ... End While
- Syntaxe While <condition (s)
<instruction(s) à répéter >
End While

- Ex Dim i As Byte = 0
While i <= 10
Console.WriteLine("i = " & i)
i=i+1
End While
Structures de contrôles (24)
3. Structures de contrôles itératives (Boucles)
 Boucle Do ... Loop
La boucle (Do ... Loop) respecte les mêmes règles que la boucle (While ...
End While) :
 Toujours initialiser le compteur de la boucle avant d’entrer dans le bloc,
 Incrémenter le compteur de la boucle à la fin des instructions,
 Contrôler la valeur du compteur dans la condition de la boucle.

La boucle Do….. Loop propose quatre variantes :


Structures de contrôles (25)
3. Structures de contrôles itératives (Boucles)
 Boucle Do ... Loop
- Syntaxe Variante 1 Do While <condition(s)>
<instruction(s) à répéter >
Loop

Ex. Dim i As Byte = 0


Do While i <= 10
Console.WriteLine("i = " & i)
i=i+1
Loop
NB : Le fonctionnement de cette syntaxe est identique à la boucle (While
….End While.
Structures de contrôles (26)
3. Structures de contrôles itératives (Boucles)
 Boucle Do ... Loop
- Syntaxe Variante 2 Do
<instruction(s) à répéter >
Loop While <condition(s)>

Contrairement à la variante 1, la variante 2 exécute la séquence


d'instruction de son bloc au moins une fois, évalue ensuite la ou les
condition(s) et elle exécute la séquence d'instruction de son bloc en les
répétant tant que la ou les conditions sont évaluées vraies.
La ou les conditions sont évaluées après chaque passage dans son bloc et à
chaque fois qu’elle(s) sont évaluée vraies, le programme exécute la même
séquence d’instruction.
Structures de contrôles (27)
3. Structures de contrôles itératives (Boucles)
 Boucle Do ... Loop
- Ex Variante 2 Dim i As Byte = 0
Do
Console.WriteLine("i = " & i)
i=i+1
Loop While i >= 10

NB : Les variantes 1 et 2 réalisent une boucle tant qu’une ou des conditions


sont remplies. Alors que les variantes 3 et 4 deux effectuent une boucle
jusqu’à ce qu’une ou des conditions soient remplies.
Structures de contrôles (28)
3. Structures de contrôles itératives (Boucles)
 Boucle Do ... Loop
- Syntaxe Variante 3 Do Until <condition(s)>
<instruction(s) à répéter >
Loop

Ici, la boucle est exécutée jusqu’à ce que la condition soit vraie. Si elle est
vraie dès le début de la boucle, son bloc de code ne sera jamais exécuté.
Pour garantir au moins une exécution du bloc de son code, il convient
d’utiliser la syntaxe de la variante 4 qui teste la condition à la fin de
l’exécution du bloc de code.
Structures de contrôles (29)
3. Structures de contrôles itératives (Boucles)
 Boucle Do ... Loop
- Syntaxe Variante 4 Do
<instruction(s) à répéter >
Loop Until <condition(s)>

NB : Ici, son bloc de code s’exécute au moins une fois puis teste ensuite la
condition et jusqu’à ce que la condition soit vraie.
Structures de contrôles (30)
3. Structures de contrôles itératives (Boucles)
 Boucle Do ... Loop
- Ex. Variante 3 Dim i As Byte = 0
Do Until i = 10
Console.WriteLine(" i est = " & i)
i=i+1
Loop

- Ex. Variantes 4 Dim i As Byte = 0


Do
Console.WriteLine(" i est = " & i)
i=i+1
Loop Until i = 1
Structures de contrôles (31)
3. Structures de contrôles itératives (Boucles)
 Boucle For ... Next
Lorsque le nombre d’itérations à réaliser dans une boucle est connu, il est
préférable d’utiliser la boucle (For ... Next). Pour pouvoir l’utiliser, un
compteur doit être déclarée dans son code.
- Syntaxe For Compteur=valeurInitiale To valeurFinale
<instruction(s) à répéter >
Next
NB : C’est l’instruction Next qui incrémente le compteur et qui compare sa
valeur avec la valeur Finale de la boucle. Par défaut, l’incrément (pas) est
de 1, en ajoutant le mot clé Step, on peut modifier son pas, qui peut être
(négative ou positives).
Structures de contrôles (32)
3. Structures de contrôles itératives (Boucles)
 Boucle For ... Next
Ex. For i = 1 To 10
Console.WriteLine(i)
Next

For i = 10 To 1 Step -2
Console.WriteLine(i)
Next
Structures de contrôles (33)
3. Structures de contrôles itératives (Boucles)
Il est possible de prévoir une sortie prématurée d’une boucle en utilisant le
mot clé « Exit ». Pour chaque type de boucle, il convient de coupler ce mot-
clé avec un mot-clé particulier de la boucle concernée :

 Boucle While ... End While : Exit While


 Boucle Do ... Loop : Exit Do
 For ... Next : Exit For.

NB : Les boucles doivent utiliser une structure de contrôle conditionnelle


afin de faire une sortie prématurée.
Structures de contrôles (34)
3. Structures de contrôles itératives (Boucles)
 Exemple, Boucle While ... End While : Exit While
Dim i As Byte = 0
While i <= 10
Console.WriteLine("i = " & i)
i=i+1
If i = 6 Then
Exit While
End If
End While
Structures de contrôles (35)
3. Structures de contrôles itératives (Boucles)
 Exemple, Boucle Do ... Loop : Exit Do
Dim i As Byte = 0
Do While i < 10
i=i+1
Console.WriteLine(i)
If i = 6 Then
Exit Do
End If
Loop
Structures de contrôles (36)
3. Structures de contrôles itératives (Boucles)
 Exemple, For ... Next : Exit For.
For i = 0 To 10
Console.WriteLine("i = " & i)
If i = 2 Then
Exit For
End If
Next
Structures de contrôles (37)
3. Structures de contrôles itératives (Boucles)
 Boucle For Each ... Next
Elle permet d’exécuter un bloc de code pour chaque élément contenu dans
un tableau ou dans une collection (parties non encore abordées).
Syntaxe générale : For Each <element> in <tableau> Ou <Collection>
<instruction(s) à répéter >
Next
NB : Il n’y a pas de notion de compteur dans cette structure, puisqu’elle
effectue elle-même les itérations sur tous les éléments présents dans le
tableau ou la collection.

Vous aimerez peut-être aussi