Zitat Zitat von HaWe Beitrag anzeigen
- 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.