Langage C Sharp/Fiche/Boucles et structures conditionnelles
Une page de Wikiversité.
Langage C Sharp/Fiche/Boucles et structures conditionnelles est une ébauche concernant l'informatique. Vous pouvez aider le projet Wikiversité en l'améliorant.
Sommaire |
[modifier] Structures conditionnelles
[modifier] Structures IF
[modifier] Introduction IF
En C# comme dans beaucoup d'autres langages il peut être parfois utile voire nécessaire de savoir SI une condition est remplie avant d'exécuter une instruction (Exemple : Si un fichier n'est pas trouvé, afficher une erreur). Ce test est de type booléen : soit la condition est vraie (true), soit elle est fausse (false).
Les conditions impliquant des valeurs comparables (des nombres en général) utilisent des expressions employant des opérateurs de comparaison : est-ce que quelque-chose est plus petit que, égal à, plus grand que, différant de, etc... quelque-chose d'autre ?
En C# on utilise la fonction if en français "si".
L'instruction if est presque toujours associée à l'instruction else en français "sinon", qui permet d'exécuter une instruction si le résultat du test est faux. Malgré tout, l'instruction else n'est pas obligatoire, en particulier s'il n'y a rien à faire dans le cas où la condition est fausse.
Prenons un exemple de la vie de tous les jours :
Si tu met la table, tu pourras manger, sinon tu ne mangera pas.
Cette exemple illustre à merveille la structure de la fonction IF et de ELSE.
[modifier] Structure IF (Simple)
Petit rappel des opérateurs de comparaison.
| égal | == |
| pas égal/différant | != |
| plus petit | < |
| plus petit ou égal | <= |
| plus grand | > |
| plus grand ou égal | >= |
Modèle de structure :
| if (test à effectuer)
{ |
Exemple:
if (x < 4) { Console.WriteLine("X est plus petit que 4"); } else { Console.WriteLine("X est plus grand ou égal à 4"); }
Voici un simple bout de code qui permet d'afficher si la valeur de la variable x est inférieur à 4.
[modifier] Structure IF (Complexe)
Dans certains cas il faut, par exemple que 2 variables soit égal à 4. Pour tester si ces 2 variables sont égal nous allons utiliser la fonction vu si-dessus,.... la fonction if à la-quelle nous allons un peu modifier la condition. Petit rappel des opérateur logique.
| ET/AND | && |
| OU/OR | || |
| PAS/NOT | ! |
Modèle de structure à 2 condition:
| if((test à effectuer1)&&(test à effectuer2))
{ |
IL suffit simplement de créé 2 test à effectuer et les "relier" par un opérateur logique. Puis de placer parenthèse afin de, comme en math, créé un "groupe"
Exemple: (2 * 3) + 2 = 8
2 * (3 + 2) = 10, car dans ce cas on fait d'abord 3 + 2 = 5 et ensuite on fait la parenthèse * 2 = 10.
Exemple de parenthèse:
| if((x < 4) && ((y > 2) || (z = 0)))
{ |
Dans notre cas le programme vérifie si y est supérieur à 2 ou que z est égal à 0,si aucune des conditions est remplie Il exécutera le else,si au moins une des condition est rempli il vérifiera si x est inférieur à 4 et s'il ne l'est pas il exécutera le else, cependant si x est bien inférieur a 4 il exécutera les instruction saisie en dessous du if}.
Nous avions vu que si le résultat tu test du if était faux le programme effectuait le else cependant nous pouvons rajouter un if au else , je m'explique avec un exemple.
Exemple de else if:
if((x < 4) && (y > 2)) { /* Ce qui sera exécuter si le résultat des tests (x < 4) && (y > 2) sont juste même si i est supérieur à 45 */ ) else if(i < 45) { /* Ce qui sera exécuter si le résultat des tests (x < 4) && (y > 2)est faux mais que le résultat du test (i< 45) est juste */ ) else { /* Ce qui sera exécuter si le résultat des tests (x<4)&&(y>2)est faux et que le résultat du test (i < 45) est faux */ }
[modifier] Structures Switch
[modifier] Introduction Switch
Le Switch pourrait s'apparenter à une suite d'instruction if else, il ne s'utilise pas de la même manière mais permet de faire exactement la même chose.
Cependant, il y a deux différences principales :
- la structure switch est plus simple d'utilisation car le test n'est pas entièrement répété,
- l'exécution est plus rapide qu'une suite d'instruction if else.
[modifier] Structure Switch
Voici un exemple qui vous parlera sûrement mieux que des milliers d'explications.
int toto = 1; switch (toto) { case 1: Console.WriteLine("la valeur de toto est 1"); break; case 2: Console.WriteLine("la valeur de toto est 2"); break; default: Console.WriteLine("la valeur de toto n'est ni 1 ni 2"); break; }
Comme vous avez pu le constater, la valeur qui suit un case est la valeur à la quelle toto sera comparé et elle correspond, toutes les instructions à partir de l'instruction case sont effectuées jusqu'à la fin du switch ou la prochaine instruction break.
Il est possible de regrouper plusieurs instructions case pour effectuer le même traitement.
Exemple :
int toto = 1; switch (toto) { case 1: case 2: Console.WriteLine("la valeur de toto est 1 ou 2"); break; default: Console.WriteLine("la valeur de toto n'est ni 1 ni 2"); break; }
Il n'est toutefois pas possible de ne pas terminer les instructions de traitement afin de poursuivre avec le cas suivant :
int toto = 1; switch (toto) { case 1: Console.WriteLine("la valeur de toto est 1, et on continue ..."); // Le compilateur exige une instruction de fin de cas case 2: Console.WriteLine("la valeur de toto est 1 ou 2"); break; default: Console.WriteLine("la valeur de toto n'est ni 1 ni 2"); break; }
La poursuite d'instructions de traitement d'un autre cas doit être indiquée explicitement avec l'instruction goto :
int toto = 1; switch (toto) { case 1: Console.WriteLine("la valeur de toto est 1, et on continue ..."); goto case 2; case 2: Console.WriteLine("la valeur de toto est 1 ou 2"); break; default: Console.WriteLine("la valeur de toto n'est ni 1 ni 2"); break; }