Programmation en C :

7. Choix multiples (structures de contrôle)

codecommentaire
/* prog7a.c */
#include <stdio.h>
char k;

main() {
  printf("caractere? ");
  scanf("%c",&k);
  if (k=='+') printf("plus");
  else if (k=='-') printf("moins");
  else if (k=='*') printf("multiplie");
  else if (k=='/') printf("divise");
  else printf("pas un operateur reel");
}
Conditionnelles enchainées :
Si condition1 alors conséquence1.
sinon Si condition2 alors conséquence2.
...
sinon alternative finale.
/* prog7b.c */
#include <stdio.h>
int n,p;

main() {
#include <stdio.h>
char k;

main() {
  printf("caractere? ");
  scanf("%c",&k);

  switch(k) {
    case 42 :
      printf("multiplie");
      break;
    case 43 :
      printf("plus");
      break;
    case 45 :
      printf("moins");
      break;
    case 47 :
      printf("divise");
      break;
    default :
      printf("pas un operateur reel");
  }
}
Choix multiple sans alternative :
Selon variable X
choix valeur_1 : action_1
...
choix valeur_n : action_n.

Choix multiple avec alternative :
Selon variable X
choix valeur_1 : action_1
...
choix valeur_n : action_n
autrement : action alternative.

Avantages :
– Plus lisible que la succession d'alternatives,
– En C, meilleure vitesse d'exécution si nombre suffisant de cas,
– En programmation virtuose du C, raccourcis de programmation gérant la présence ou l'absence de break.
Inconvénients :
– en C, les valeurs doivent impérativement être des entiers constants (ce qui inclut donc les caractères),
– en C, l'oubli d'un break est source d'erreurs graves de programmation.