Security-X

Forum Security-X => Programmation => Cours => Discussion démarrée par: igor51 le juillet 18, 2012, 21:49:21

Titre: Les structures de contrôle
Posté par: igor51 le juillet 18, 2012, 21:49:21
Les structures conditionnelles

Comme vous pouvez le voir dans les exemples précédents, les instructions sont contenues dans entre des accolades ({ }). On appelle ce qu'il y a entre ces accolades un bloc d'instructions.
Cette définition prendra tout son sens dans la suite.

Le C est un langage supportant les conditions : Si condition  alors exécuter bloc d'instructions

Comment ça fonctionne ?  Il suffit de traduire en anglais et de remplacer les alors par des accolades :).

if (ma condition)
{
  je fais ça
}
else
{
  je fais plutôt ça
}

Ce qui donne dans la pratique :

#include <stdio.h>

int main()
{
        int i = 0, j = 1, k = 2;

        printf ("Initial i = %i j = %i k = %i \n", i, j, k);

        if(j < k)
        {
                printf("J est inferieur a k \n");
        }
        else
        {
       
                printf("J est superieur ou egal a k \n");
        }
       
        return 1;
}

Modifiez les valeurs de i et k pour voir l'effet ;)

---

Note de style. Il est d'usage d'indenter (organiser) son code pour qu'il soit plus lisible. Dans la pratique, lorsque l'on ouvre une accolade, on tabule pour que les instructions soient décalées. Cela permet d'indiquer que toutes les instructions tabulées font partie de ce bloc d'instructions (entre accolades).

De plus, certains préfèrent cette syntaxe (regardez les accolades) :

#include <stdio.h>

int main()
{
        int i = 0, j = 1, k = 2;

        printf("Initial i = %i j = %i k = %i \n", i, j, k);

        if( j < k) {
                printf("J est inferieur a k \n");
        } else{
                printf("J est superieur ou egal a k \n");
        }
       
        return 1;
}

Je préfère la première car on voit mieux apparaître les différents blocs. Mais c'est à vous de choisir !
Titre: Re : Les structures de contrôle
Posté par: igor51 le juillet 18, 2012, 21:49:47
Les boucles

Une boucle est une structure, qui permet de répéter un bloc d'instruction tant qu'une condition est vraie.
Par exemple : "Tant que tu as de mauvaises notes, tu bosses tes cours".

Il existe deux types de boucles : les boucles "for" (pour) et les boucles "while" (tant que).

Le For permet de balayer tout une plage sans trop s'intéresser à ce qu'il se passe à l'intérieur de la boucle. Par exemple, pour i allant de 0 à 10, afficher i.
Le While lui est conditionnel : le while ne fonctionnera que tante qu'une condition est vraie : tant que i < 10, afficher i.

La nuance entre les deux boucles est fortes et il est important de la comprendre pour utiliser l'une ou l'autre.

#include <stdio.h>

int main()
{
        int i=0;

        for(i = 0; i < 10; i++)
        {
                printf("Initial i = %i \n", i);
        }

        return 1;
}
La syntaxe est la suivant for( début de la boucle; condition à respecter; incrémentation de la variable). Encore une fois les instructions sont entre { }.
je vous laisse tester.

Pour le while :

#include <stdio.h>

int main()
{
        int i=0;

        while( i < 10)
        {
                printf("Initial i = %i \n", i);
                i = i+1;
        }

        return 1;
}
Voici la différence : il faut incrémenter la variable à la main, sinon on crée une boucle infinie.

Il faut noter qu'ici le résultat final est exactement identique.