Basis van programmeren in 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);Wat is de uitvoer als het bovenstaande switch-statement, met een case zonder break, wordt uitgevoerd?
- A10
- B110
- C1110
Antwoord en toelichting tonen
Antwoord: B. 110
Een switch-statement springt naar het case-label dat bij de waarde van n past en voert vanaf daar ook de statements van de volgende cases uit tot het een break tegenkomt (fall-through). n is 2, dus de uitvoering begint bij case 2, en na c += 10 wordt ook c += 100 van case 3 uitgevoerd, waarna break de switch verlaat. c is 10 + 100 = 110. Als het doorlopen bedoeld is, maakt een vermelding daarvan in commentaar het gemakkelijk om het te onderscheiden van een vergeten break.