Bases de la programmation en C
int n = 2, c = 0;
switch (n) {
case 1: c += 1;
case 2: c += 10;
case 3: c += 100; break;
default: c += 1000;
}
printf("%d\n", c);Quelle est la sortie obtenue en exécutant l'instruction switch ci-dessus, qui contient un case sans break ?
- A10
- B110
- C1110
Afficher la réponse et l'explication
Réponse : B. 110
Une instruction switch saute à l'étiquette case qui correspond à la valeur de n, puis exécute aussi les instructions des case suivants jusqu'à rencontrer un break (fall-through). n vaut 2 : l'exécution commence à case 2, et après c += 10 elle exécute aussi le c += 100 de case 3, puis sort du switch au break. c vaut 10 + 100 = 110. Lorsque cet enchaînement est voulu, l'indiquer dans un commentaire permet de le distinguer facilement d'un break oublié.
Continuer : 9 autres questions sur Bases de la programmation en C