# Langage C Sharp/Fiche/Boucles et structures conditionnelles
## declaration

|entier: int (nom); |réel: float (nom); |caractère: char (nom); |chaine de caractères: typedef char CH5(nombre de caractères)[nombre de caractères +1](avant le void main) puis ch(nombre de caractères) (nom)

## lecture

|entier: scanf (%f, (nom)); |réel: scanf(%d,(nom)); |caractère: (nom)=getchar; |chaine de caractères:gets (nom);

## Structures conditionnelles
### Structures IF
#### 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érent 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 mets la table, tu pourras manger, sinon tu ne mangeras pas. Cet exemple illustre à merveille la structure de la fonction IF et de ELSE.

#### Structure IF (Simple)

Petit rappel des opérateurs de comparaison.
| égal | == |
| pas égal/différent | != |
| plus petit | < |
| plus petit ou égal | <= |
| plus grand | > |
| plus grand ou égal | >= |
Modèle de structure :
* if (test à effectuer)
* Ce qui sera exécuté si le résultat du test est juste
* else
* Ce qui sera exécuté si le résultat du test est faux
Exemple:
Voici un simple bout de code qui permet d'afficher si la valeur de la variable x est inférieur à 4.

#### Structure IF (Complexe)

Dans certains cas il faut, par exemple que 2 variables soient égales à 4. Pour tester si ces 2 variables sont égales nous allons utiliser la fonction vu ci-dessus,.... la fonction if dont nous allons un peu modifier la condition. Petit rappel des opérateurs logiques.
| ET/AND | && |
| OU/OR | || |
| PAS/NOT | ! |
Modèle de structure à 2 conditions:
* if((test à effectuer1)&&(test à effectuer2))
* Ce qui sera exécuté si le résultat des tests sont juste
* else
* Ce qui sera exécuté si le résultat des tests sont faux
Il suffit de créer 2 tests à effectuer et les "relier" par un opérateur logique. Puis de placer des parenthèse afin de, comme en math, créer 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)))
* Ce qui sera exécuté si le résultat des tests sont juste
* else
* Ce qui sera exécuté si le résultat des tests sont faux
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 conditions est remplie 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 instructions saisies en dessous du if}.
Nous avions vu que si le résultat du 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:

### Structures Switch
#### 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.

#### Structure Switch

Voici un exemple qui vous parlera sûrement mieux que des milliers d'explications.
Comme vous avez pu le constater, la valeur qui suit un case est la valeur à laquelle 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 :
Il n'est toutefois pas possible de ne pas terminer les instructions de traitement afin de poursuivre avec le cas suivant :
La poursuite d'instructions de traitement d'un autre cas doit être indiquée explicitement avec l'instruction goto :

## Boucles
### While
#### Introduction While

While est une boucle simple qui vas exécuter les commandes temps que la condition est évalué TRUE

#### Structure While
### Do While
#### Introduction Do While

Do While est légèrement différente de While car la condition se situe après la boucle et se finit obligatoirement pas un ";" . Si la condition est évaluée a FALSE, la boucle sera tout de même exécutée une fois.

#### Structure Do While
### For
#### Introduction For

Les boucles for sont des boucles "complexes".
Initialisation est évalué au début de la boucle puis condition est à son tour évalué (début d'une l'itération), si elle vaut TRUE alors la boucle continue et commandes est exécuté, si elle vaut FALSE la boucle s’arrête là. À la fin de chaque itération incrémentation est évalué (exécution).
Les "expressions" peuvent être laissé vide, mais l'instruction break; doit être utilisé pour sortir de la boucle.

#### Structure For

boucle de recherche : for (initialisation;condition;incrémentation);
| Opérations | Sommaire |