
Zitat von
HaWe
- was wieder darauf zurückzuführen ist, dass vor der nächsten case-label/Sprungmarke per "break" ans Ende vom "switch"-Block gesprungen werden muss, ebenfalls genau wie bei reinen aneinandergereihten goto Sprungmarken
Das ist gleich doppelt falsch. Ein switch kann in C und C++ auch so aussehen
Code:
switch(wert)
{
case 1:
case 2:
case 3:
// Code für die ersten drei Fälle
break;
case 4:
// speziell für 4
case 5:
case 6:
// für 4 bis 6 gemeinsam
}
Weil das eine beliebte Fehlerquelle ist, durch ein vergessenes break, haben erst neuere Sprachen wie C# die Regel eingeführt, dass jedes case mit einem break beendet werden muss.
Zweitens ist es natürlich nicht richtig, dass irgendwie ans Ende des switch gesprungen werden muss. In C++ schon weil es Exceptions gibt, die können natürlich ein switch an beliebiger Stelle verlassen. Und gemeinsam mit C gibt es natürlich die Möglichkeit mit return statt break herauszugehen.
Lesezeichen