Gast
#2137050
Hallo Leute! Ich habe eine Frage zur Switch-Anweisung und zwar zu dem Fall, dass die default-Anweisung vor einem "case" steht. Jetzt habe ich folgenden Beispielcode in einem C-Tutorial gefunden, und bin mir nicht sicher ob die Erklärung richtig ist: (Das Beispiel stammt von http://www.peacesoftware.de/ckurs7.html)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
Dazu stand im Tutorial folgende Erklärung: "In diesem kurzen Beispiel steht die default Anweisung oben und wird nicht mit einem break beendet. Da beide folgenden cases nicht zutreffen, wird der default block zuerst ausgeführt, es wird y gleich Null gesetzt. Da kein break vorhanden ist, wird die nächste Anweisung, mychar = 'a'; auch ausgeführt. Danach steht break und es ist Schluß." Jetzt meine Frage: Dass der default-Zweig betreten wird ist klar, und weil dieser keine break-Anweisung enthält, läuft das Programm weiter zu "case 1:". Aber: warum wird dieser Teil betreten und mychar = 'a' ausgeführt? Ist das ein Fehler in der Erklärung oder eine Verständnisfrage meinerseits? Ich persönlich habe bis jetzt default-Anweisungen nur am Ende von switch- Statements eingefügt, da es so meiner Meinung nach übersichtlicher und üblich ist. Auf diesen Fall bin ich beim Einlesen in einen fremden Code gestoßen und wollte jetzt recherchieren wie sich das Programm verhält. Vielen Dank für Eure Hilfe Max