next up previous contents index
Next: Constantes énumérées Up: No Title Previous: Caractères

Instruction d'aiguillage switch

      

Il est souvent utile d'exécuter une instruction en fonction de la valeur d'un entier ou d'un caractère ; C offre une instruction composée, switch, pour cela. L'exemple suivant pourrait servir, avec quelques lignes supplémentaires, à compter les voyelles et les consonnes d'un texte :

  switch(c) {
    case 'a': 
    case 'e': 
    case 'i': 
      voyelles = voyelles + 1;
      break;
    case 'b': 
    case 'c': 
    case 'd': 
      consonnes = consonnes + 1;
      break;
    default: 
      autres = autres + 1;
  }

L'instruction d'aiguillage switch se compose d'une expression et d'un bloc d'instructions étiquetées (par un case ou par default).

   

La valeur de c est successivement comparée à la valeur de chacune des expressions constantes figurant à droite de case. Dès qu'il y a un cas d'égalité, l'instruction suivant ce case est exécutée, ainsi que toutes les instructions suivantes, jusqu'à la fin du bloc ou jusqu'à un échappement : les instructions break ou return. Si aucune égalité n'est vérifiée, ce sont les instructions qui suivent le cas default qui sont exécutées.

Dans les usages courants du switch, chaque cas (non-vide) doit être terminé par un échappement. Dans l'exemple qui suit, c'est << ab même si c'est un a >> qui est affiché à l'écran, quand c est égal à 'a' :

  switch(c) {
    case 'a':
      printf("a"); 
    case 'b': 
      printf("b même si c'est un a"); 
    default: ...
  }


Jean-Philippe Chancelier
9/29/1998