Grundlagen der Programmiersprache 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);Welche Ausgabe erzeugt die obige switch-Anweisung, die ein case ohne break enthält, bei der Ausführung?
- A10
- B110
- C1110
Antwort und Erläuterung anzeigen
Antwort: B. 110
Eine switch-Anweisung springt zur case-Marke, die zum Wert von n passt, und führt von dort aus auch die Anweisungen der folgenden case-Marken aus, bis sie auf ein break trifft (Fall-through). n ist 2, daher beginnt die Ausführung bei case 2; nach c += 10 wird auch c += 100 von case 3 ausgeführt, und break verlässt die switch-Anweisung. c ist 10 + 100 = 110. Ist das Weiterlaufen beabsichtigt, hilft ein Kommentar, es von einem vergessenen break zu unterscheiden.
Weiter: 9 weitere Fragen zu Grundlagen der Programmiersprache C