CPGE Oujda                                                                                                                                                                  Sup

STRUCTURES DE CONTROLE

L'instruction if

Permet d'effectuer des choix conditionnels. La syntaxe de l'instruction est la suivante :

if ( <expression> )
    <une et une seule instruction>
else
    <une et une seule instruction>

Une instruction if peut ne pas comporter de else. Lorsqu'on a plusieurs instructions if imbriquées, un else se rapporte toujours au dernier if suivi d'une et une seule instruction. Par exemple : écrivons un programme qui compare deux nombres.

#include <stdio.h>
int main()
{
    int a, b;
        printf("Ce programme compare deux nombres.\n");
    printf("Entrez la valeur de a : ");
    scanf("%d", &a);
    printf("Entrez la valeur de b : ");
    scanf("%d", &b);
    if (a < b)
        printf("a est plus petit que b.\n");
    else
        if (a > b)
            printf("a est plus grand que b.\n");
        else
            printf("a est egal a b.\n");
    return 0;
}

L'instruction do

Permet d'effectuer une boucle. La syntaxe de l'instruction est la suivante :

do
    <une et une seule instruction>
while ( <expression> );

L'instruction do permet d'exécuter une instruction tant que <expression> est vraie. Le test est fait après chaque exécution de l'instruction. Voici un programme qui affiche 10 fois Bonjour.

#include <stdio.h>
int main()
{
    int nb_lignes_affichees = 0;
    do
        {
            printf("Bonjour.\n");
            nb_lignes_affichees++;
        }
    while (nb_lignes_affichees < 10);
        return 0;
}

L'instruction while

Permet d'effectuer une boucle. La syntaxe de l'instruction est la suivante :

while ( <expression> )
    <une et une seule instruction>

L'instruction while permet d'exécuter une instruction tant que <expression> est vraie. Le test est fait avant chaque exécution de l'instruction. Donc si la condition (<expression>) est fausse dès le départ, la boucle ne sera pas exécutée.

L'instruction for

Permet d'effectuer une boucle. La syntaxe de l'instruction est la suivante :

for ( <init> ; <condition> ; <step>)
    <instruction>

Elle est pratiquement identique à :

<init>;
while ( <condition> )
{
    <instruction>
    <step>
}

Par exemple, écrivons un programme qui affiche la table de multiplication par 5.

#include <stdio.h>
int main()
{    int n;
        for(n = 0; n <= 10; n++)
        printf("5 x %2d %2d\n", n, 5 * n);
    return 0;
}

Le format %2d permet d'afficher un entier avec 2 caractères au minimum (l'espace restant sera rempli par des espaces).

Les instructions switch et case

Ces instructions permettent d'éviter des instructions if trop imbriquées comme illustré par l'exemple suivant :

#include <stdio.h>
int main()
{    int n;
 
    printf("Entrez un nombre entier : ");
    scanf("%d", &n);
    switch(n)
    {
    case 0:
        printf("Cas de 0.\n");
        break;
    case 1:
        printf("Cas de 1.\n");
        break;
    case 2: case 3:
        printf("Cas de 2 ou 3.\n");
        break;
    case 4:
        printf("Cas de 4.\n");
        break;
    default:
        printf("Cas inconnu.\n");
    }
        return 0;
}

L'instruction break

Permet de sortir immédiatement d'une boucle ou d'un switch. La syntaxe de cette instruction est : break;

 L'instruction continue

Dans une boucle, permet de passer immédiatement à l'itération suivante. Par exemple, modifions le programme table de multiplication de telle sorte qu'on affiche rien pour n = 4 ou n = 6.

#include <stdio.h>
int main()
{    int n;
    for(n = 0; n <= 10; n++)
    {
        if ((n == 4) || (n == 6))
            continue;
        printf("5 x %2d %2d\n", n, 5 * n);
    }
    return 0;
}

L'instruction return

Permet de terminer une fonction. La syntaxe de cette instruction est la suivante :

return <expression>; /* termine la fonction et retourne <expression> */

ou :

return; /* termine la fonction sans spécifier de valeur de retour */