C-SHARP - 3.9 Condition (Démo)
Nous nous retrouvons maintenant sur Visual Studio afin de mettre en pratique la notion de condition en C#. On va donc reprendre l'exemple qu'on a vu dans la vidéo précédente d'un jeune homme qui se rend au cinéma seul et doit avoir minimum 18 ans pour y accéder. Premièrement, on a besoin d'une variable qui va stocker l'âge de ce jeune homme. On va donc déclarer une variable de type int qu'on va appeler âge et on va lui affecter la valeur 19. Ensuite il faut créer la condition qui va permettre de vérifier si l'âge de la personne est supérieur ou égale à 18. En gros qu'il est majeur Pour faire ça en C#, il faut faire un If If en français veut dire si. Ensuite vous mettez des parenthèses et c'est ici que vous allez entrer votre condition, la condition est que l'âge est supérieur ou égal à 18. Ensuite on ouvre des accolades et c'est à l'intérieur qu'on va mettre nos instructions Ici on va renvoyer à l'utilisateur que s'il est majeur alors vous pouvez entrer. On va donc faire un Console.WriteLine() et à l'intérieur on va écrire "Vous êtes majeur, vous pouvez entrer dans le cinéma." Donc ici pour résumé, on a créé une condition à partir du if auxquels on y a place une condition. Et à l'intérieur de ce bloc conditionnel, on place une instruction. On va lancer le programme Et vous voyez que le programme nous affiche bien vous êtes majeur, vous pouvez entrer dans le cinéma car la valeur Est supérieur ou égal à 18. celle qui est contenu dans la variable age. Maintenant si on change la valeur de la variable age et qu'on met 12, que va-t-il se passer ? Je lance et vous voyez ? Rien ne s'affiche. Pourquoi ? Bah en réalité ici on teste si notre âge est supérieur ou égal à 18. et seulement si le résultat de ce test est vrai alors on exécute l'instruction faite entre les accolades. Vous allez me dire mais on veut que notre programme soit complet, qu'il traite n'importe quelle situation qu'on soit mineur ou majeur. J'y viens ! En C# et dans la totalité des langages de programmation, il existe ce qu'on appelle le "else" qui veut dire sinon en français Ce "else" se complète avec le if et il va traiter tous les cas que le if ne traite pas. Lorsque le compilateur va exécuter votre programme, il va tout d'abord tester si la condition est vraie ou fausse. Si la condition est vraie alors le else est ignoré. En revanche si la condition est fausse alors le else va intervenir pour traiter tous les autres cas. Ici dans cette situation le rôle du else sera de traiter le cas où le jeune homme est mineur. Dernière chose le else n'a pas besoin de condition car il traite tous les autres cas que le if ne traite pas. Donc entre les accolades du else, on va mettre un Console.WriteLine() qui va nous afficher "Vous êtes mineur, vous devez être accompagné d'un adulte." Maintenant si on lance le programme, l'âge équivaut à 12 on test d'abord si l'age est supérieur ou égal 18, c'est faux donc on passe directement au else et on exécute l'instruction qui se trouve entre ses accolades soit d'afficher : "Vous êtes mineur, vous devez être accompagné d'un adulte." Maintenant qu'on a vu le if et le else, on a aussi la possibilité d'ajouter une autre condition en faisant un else if, en gros on a précisé une condition dans le if par exemple age est = à 18 mais qu'on a envie d'ajouter une condition pour un autre cas précis par exemple lorsque la personne à 65 ans on veut afficher cette fois ci vous avez 65 ans, vous bénéficiez d'une réduction. Vous savez que le else comprend tous les autres cas qui ne sont pas dans le if donc si on met cette instruction dans le else si on a 12 ans par exemple, on aura cette instruction qui sera exécuté et c'est pas ce qu'on recherche. On va d'abord changer la condition du if et mettre age == 18, le double égal vous vous rappelez qu'il permet de faire un test d'égalité si l'âge est égal à 18 ans. Contrairement au simple = qui permet d'affecter une valeur. Ensuite dans le Console.WriteLine() on va mettre par exemple "Promo : -20%" pour celui qui a 18 ans. Ensuite pareil que pour le if sauf qu'on va rajouter un else devant, qui fait else if, sinon si la condition entre les parenthèses sera age == à 65 ans, on ouvre les accolades et on va afficher Promo : -50%, ça veux dire que celui qui aura 65 ans bénéficiera d'une remise Et pour terminer le else va traiter tous les autres âges, on va afficher une Promo : de -10%Donc maintenant si l'age équivaut à 65 et qu'on lance le programme, on entre bien dans la condition du else if et nous affiche Promo : -50% Si je mets 18, on entre dans la première Et si je mets 4 par exemple on entre dans le cas du else qui traite tout le reste. Petite parenthèse, lorsque vous avez qu'une seule instruction dans vos conditions vous pouvez supprimer les accolades pour des raisons de lisibilité en revanche si vous avez deux instructions dans votre bloc par exemple comme ça, ce n'est plus possible. C'est possible que lorsqu'il n'y a qu'une seule instruction. Et pour terminer, on va voir une autre façon de faire des conditions en C#. Reprenons notre programme du cinéma, imaginons qu'il y a une réduction pour plusieurs tranches d'âge qui va se traduire par pleins de if else if etc Donc ce qui fait que notre programme ne sera pas très optimisé et illisible. Cependant notre politique en tant que développeur c'est de faire des programmes optimisé et clair. On se doit de le respecter. Afin de parait à ce problème on a ce qu'on appelle le switch. Il va nous permettre d'éviter de mettre des if par dizaines un peu partout. Maintenant ! Pour faire un switch c'est très simple ! Vous tapez switch et entre les parenthèses vous mettez la variable avec lequel vous voulez faire les tests, ici c'est la variable age donc vous mettez entre les parenthèses la variable âge, ensuite vous ouvrez des accolades et on va maintenant indiquer tous les cas possibles. Premièrement, ce qu'on doit faire en premier c'est d'indiqué le cas général qui va prendre tous les cas qu'on ne va pas indiquer, comme le else entre guillemets.Pour cela, il faut écrire default : Ensuite on met toutes les instructions qu'on souhaite ici je vais juste mettre un Console.WriteLine() pour afficher la phrase suivante : « Vous ne bénéficiez pas de réduction » ceci traite tous les cas qui ne seront pas spécifiés et je termine par un break ; Dans le switch, on termine toujours un cas par un break c'est pour dire au compilateur qu'on sort de ce cas. Si on ne le met pas, il tournera en boucle et ne pourra sortir de cas. Donc il est important de le mettre à chaque fois à la fin de chaque cas pour sortir du switch ! Maintenant passons au premier cas qui va traiter tous les moins de 4 ans. Pour faire ça, vous tapez case qui veut dire clause ensuite ici vous mettez la condition donc on va mettre inférieur à 4 ensuite : et là on va mettre notre instruction. On va afficher : « L'entrée est gratuite pour les moins de 4 ans. » Et n'oubliez pas de le break ; Ensuite en dessous pour refaire une autre clause vous faites case ensuite la condition que vous voulez par exemple tous ceux qui ont un age compris entre 5 et 12 (case <= 12) etc Et on va en faire plusieurs histoires de pouvoir faire plusieurs tests. Voilà maintenant on va changer la valeur de la variable age et vous voyez à chaque fois on entre dans chaque clause, vous remarquerez que cette façon de faire est la meilleure pour ce genre de cas Plus optimisé et nettement plus lisible. Vous vous imaginez de faire pleins de if else if partout dans votre programme. Votre code resemblera à plus rien et il sera difficile de vous retrouvez. Surtout qu'au fur et à mesure du temps, vous allez écrire peut-être des programmes beaucoup plus long. Donc vous vous devez d'être rigoureux et de prendre dès maintenant des bonnes habitudes ! En tout cas, c'est tout pour cette vidéo. J'espère qu'elle vous a plus et que tout a été clair pour vous. Je vous dis à la prochaine dans une nouvelle vidéo