Langage C Sharp/Fiche/Boucles et structures conditionnelles

Une page de Wikiversité.

Computer-aj aj ashton 01.svg

Langage C Sharp/Fiche/Boucles et structures conditionnelles est une ébauche concernant l'informatique. Vous pouvez aider le projet Wikiversité en l'améliorant.

Fiche-mémoire sur les Boucles et structures conditionnelles

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)

{
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:

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))

{
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 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)))

{
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 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;
}

[modifier] Boucles

[modifier] While

[modifier] Introduction While

[modifier] Structure While

[modifier] Do While

[modifier] Introduction Do While

[modifier] Structure Do While

[modifier] For

[modifier] Introduction For

[modifier] Structure For

Crystal Clear action back.png Opérations