So lange ich mich erinnern kann, habe ich es vermieden, die switch-Anweisung fall-through zu verwenden. Eigentlich kann ich mich nicht erinnern, dass es jemals in mein Bewusstsein eingedrungen ist, um Dinge zu tun, da mir schon früh in den Kopf gebohrt wurde, dass es nichts weiter als ein Fehler in der switch-Anweisung war. Heute bin ich jedoch auf Code gestoßen, der ihn von Natur aus verwendet, und habe mich sofort gefragt, was alle in der Community über das Durchfallen von switch-Anweisungen denken.
Ist es etwas, das eine Programmiersprache explizit nicht zulassen sollte (wie C #, obwohl es eine Problemumgehung bietet), oder ist es eine Funktion einer Sprache, die leistungsfähig genug ist, um sie in den Händen des Programmierers zu belassen?
Bearbeiten: Ich war nicht spezifisch genug für das, was ich mit Durchfall meinte. Ich benutze diesen Typ oft:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
Ich mache mir jedoch Sorgen um so etwas.
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something, but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
Auf diese Weise wird immer dann, wenn der Fall 0, 1 ist, alles in der switch-Anweisung ausgeführt. Ich habe dies beabsichtigt und weiß nur nicht, ob ich damit einverstanden bin, dass switch-Anweisungen auf diese Weise verwendet werden. Ich denke, das erste Codebeispiel ist sehr nützlich und sicher. Der zweite scheint irgendwie gefährlich zu sein.