English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base C

Contrôle de flux C

Fonctions du langage C

Tableaux en langage C

Pointeurs en langage C

Chains de caractères en langage C

Structure de type C

Fichier C

Autres C

Manuel de référence C

Instructions switch du langage C

Dans ce tutoriel, vous apprendrez à créer une instruction switch en programmation C à l'aide d'un exemple.

L'instruction switch nous permet d'exécuter l'un des nombreux blocs de code possibles.

Bien que vous puissiez utiliser if...else..if pour exécuter la même opération. Cependant, la syntaxe de l'instruction switch est plus facile à lire et à écrire.

Syntaxe de switch ... case

switch (expression)
{
    case constant1:
      // Instructions
      break;
    case constant2:
      // Instructions
      break;
    .
    .
    .
    default:
      // Instruction par défaut
}

Comment fonctionne l'instruction switch ?

L'expression (expression) est évaluée une fois et comparée à chaque balise case

  • Si il y a une correspondance, exécuter les instructions après la balise correspondante. Par exemple, si la valeur de l'expression est égale à constant2Alors, exécuter case constant2Les instructions après : jusqu'à ce que break soit rencontré.

  • Si il n'y a pas de correspondance, l'instruction par défaut (default) sera exécutée.

Si break n'est pas utilisé, toutes les instructions après la balise correspondante seront exécutées.

En passant, la clause default de l'instruction switch est optionnelle.

Schéma de flux de l'instruction switch

Exemple : calculateur simple

//Le programme crée un simple calculateur
#include <stdio.h>
int main() {
    char operator;
    double n1, n2;
    printf("Entrer un opérateur (+, -, *, /)");
    scanf("%c", &operator);
    printf("Entrer deux opérandes: ");
    scanf("%lf %lf", &n1, &n2);
    switch (operator)
    {
    case '+':
        printf("%.1lf + %.1lf = %.1lf", n1, n2, n1 + n2);
        break;
    case '-':
        printf("%.1lf - %.1lf = %.1lf", n1, n2, n1 - n2);
        break;
    case '*':
        printf("%.1lf * %.1lf = %.1lf", n1, n2, n1*n2);
        break;
    case '/':
        printf("%.1lf / %.1lf = %.1lf", n1, n2, n1 / n2);
        break;
        // Aucun opérateur correspondant trouvé ( +, -, *, /)
    default:
        printf("Erreur ! Opérateur incorrect");
    }
    return 0;
}

Résultat de sortie

Entrer un opérateur (+, -, *,): -
Entrer deux opérandes: 32.5
12.4
32.5 - 12.4 = 20.1

l'opérateur entré par l'utilisateur (-)stocké dans la variable operator. De plus, deux opérandes32.5et}}12.4sont respectivement stockés dans la variable n1et n2dans.

Comme operator est -,par conséquent, le contrôle du programme saute à l'instruction

printf("%.1lf - %.1lf = %.1lf", n1, n2, n1-n2);

Enfin,Instruction breakTerminer cette instruction switch, fin de l'opération.