• Aucun résultat trouvé

Les conditions et les boucles conditionnelles

Dans un programme, tout le code ne s'exécute pas forcément. Vous pouvez faire s'exécuter certaines parties du code si des conditions sont remplies.

La route me semble être une bonne analogie. Il n'y a pas qu'un seul chemin à emprunter pour se rendre à un endroit. Suivant le lieu où vous désirez vous rendre, vous n'allez pas faire la même chose. Eh bien ici c'est pareil !

if et sa famille

if

"if" est un mot anglais qui signifie "si". C'est un mot-clef du langage C# qui permet de n'effectuer du code que dans certaines conditions.

La syntaxe est la suivante :

Code : C#

if (condition) {

// Code à exécuter si la condition est satisfaite. }

condition est une expression qui retourne un booléen : soit true, soit false :

true : le code entre les accolades est exécuté.

false : le code entre les accolades n'est pas exécuté.

Vous remarquerez au passage que j'ai mis deux slashes (slash = barre oblique : //) entre les accolades. Cela permet de mettre en commentaire ce qui se trouve à leur droite, et ce sur une ligne seulement.

Pour mettre des commentaires sur plusieurs lignes, utilisez /* pour commencer le bloc de commentaires et */ pour le finir.

Les commentaires sont ignorés lors de l'exécution : ils servent juste aux personnes qui lisent le code.

Commenter judicieusement son code est un travail subtil. Il faut savoir expliquer ce qui est susceptible de ne pas être compris par un relecteur, tout en ne tombant pas dans l'excès (c'est-à-dire ne pas commenter chaque ligne, ou du code basique).

else if

"else if" veut dire "sinon, si". Placé après un if, il permet d'exécuter du code qui ne remplit pas la première condition, mais la deuxième.

La syntaxe est la suivante :

Code : C#

if (condition1) {

// Code à exécuter si la condition est satisfaite. }

else if (condition2) {

// Code à exécuter si la première condition n'est pas satisfaite mais que la deuxième l'est.

}

else

"else" signifie "sinon". Placé après un if simple, ou un if et un (ou plusieurs) else if, il permet d'exécuter le code qui ne satisfait aucune condition précédente.

La syntaxe est la suivante :

Code : C#

if (condition) {

// Code à exécuter si la condition est satisfaite. }

else

{

// Code à exécuter si la première condition n'est pas satisfaite. }

Les trois expressions peuvent se combiner. Voici un exemple où age est un entier représentant l'âge d'un client à un restaurant :

Code : C# if (age < 4) { // gratuit // 0 < age < 4 } else if (age < 12) { // Tarif enfant // 4 <= age < 12

// en effet, age n'est pas strictement inférieur à 4, et est strictement inférieur à 12. } else if (age < 18) { // Tarif ado // 12 <= age < 18 } else { // Tarif adulte // 18 <= age } // suite du code

switch : un if spécial

Il permet de remplacer if et sa famille pour étudier l'égalité de plusieurs termes. Voici un exemple avec if où level est un entier :

Code : C# if (level == 1) { // niveau 1 } else if (level == 2) { // niveau 2 }

else

{

// autre niveau }

Voici ce que ça donne avec switch :

Code : C# switch (level) { case 1: { // niveau 1 } break; case 2: { // niveau 2 } break; default: { // autre niveau } break; }

Là-aussi, vous pouvez mettre autant de case que vous voulez.

Les break servent à clôturer les case : si vous n'en mettez pas, le code du case suivant sera aussi exécuté. Par contre le break est obligatoire dès qu'un bloc case contient du code.

default est le cas par défaut. Il est exécuté seulement si aucun case ne convient.

while

Les boucles conditionnelles permettent de répéter des actions tant que certaines conditions sont satisfaites. Dès lors que ces dernières ne le sont plus, le programme "sort de la boucle" et exécute le code qui suit.

while

"while" veut dire "tant que". La syntaxe est :

Code : C#

while (condition) {

// Code qui s'exécute tant que la condition est satisfaite. }

Il peut arriver que vous ayez besoin de sortir prématurément d'un boucle. Pour ce faire, utilisez break comme dans l'exemple suivant où condition et needToExit sont des booléens :

while (condition) { if (needToExit) { break; }

// Code à exécuter en boucle }

Une fois que break est exécuté, plus aucune ligne de code à l'intérieur des accolades de la boucle n'est exécutée. Ainsi la ligne qui s'exécute après le break est celle située juste après l'accolade fermante.

Puisqu'un exemple permet toujours de mieux comprendre, je vous propose un bout de code pour faire un compte à rebours qui débute à 100 : Code : C# int i = 100; while (i > 0) { // On décrémente i i--; }

do ... while

L'équivalent français serait "fait ... tant que". Cela permet d'exécuter les instructions une première fois obligatoirement, et de répéter l'exécution si besoin est.

La syntaxe est :

Code : C# do

{

// Code qui s'exécute une 1ère fois obligatoirement et ensuite en boucle tant que la condition est satisfaite.

}

while (condition);

Vous pouvez là encore utiliser break au sein du bloc délimité par les accolades.

for

C'est un while compact.

Regardez ce que devient notre compte à rebours avec for :

Code : C#

int i;

for (i = 100; i > 0; i--) {

On peut tout aussi bien écrire :

Code : C#

for (int i = 100; i > 0; i--) {

}

Dans ce cas, étant donné que i est déclaré dans le for, il ne sera accessible qu'entre ces deux accolades. En effet, une variable déclarée dans un bloc (ce qui est délimité par deux accolades) est uniquement accessible à l'intérieur de ce bloc. Ainsi, si je crée un entier à l'intérieur d'un bloc if, cet entier ne sera utilisable que dans ce if.

continue

À la différence de break;, continue; ne s'utilise pas pour terminer la boucle, mais pour passer directement à l'élément suivant. Voici sans plus attendre un exemple, qui vous apportera plus qu'un long discours :

Code : C#

for (int i = 1; i <= 10; i++) {

if (i < 9) {

continue; }

// La ligne suivante n'est pas exécutée si i est strictement inférieur à 9.

Console.WriteLine(i); }

Vous verrez donc :

Code : Console

9 10

Notez bien que la boucle ne s'arrête pas, seules les instructions relatives à l'élément en cours ne sont plus exécutées. Les tests de conditions sont vraiment très courants ils sont présents même dans les morceaux de code les plus simples. Ce chapitre est donc un incontournable de plus !

Documents relatifs