Hi Martin.
Für jemanden, der primär in C programmiert, die beiden erwähnten Sprachen nur gelegentlich nutzt und sich dabei freut, dass die Syntax ähnlich, in weiten Teilen sogar gleich ist wie in C, stellt sich die Situation anders dar. In C vergleicht die switch-Anweisung nämlich nur einen Ausdruck mit einer Liste von Konstanten. Daher fällt mir eine Konstruktion mit switch (true) beim Lesen immer wieder auf, ich stolpere quasi drüber und muss mich daran erinnern, dass das ja hier einen Sinn ergeben kann.
Ja ok, solche Dinge können natürlich die persönlichen Vorlieben beeinflussen. Was ich hier nur sagen wollte ist: Dass Konstrukte wie 'switch (true)' möglich sind, ist kein Bug, sondern eben so gemacht. Also gibts auch kein Grundsatzproblem hinsichtlich der Verwendung, meines Erachtens. In PHP ist das Konzept der Ausdrücke ziemlich mächtig, wenn man sich denn mal drauf einlässt. Warum nicht auch nutzen?
Übrigens habe ich vorhin festgestellt, dass in JavaScript (anders als in PHP)
1 == true
zwar wahr ist, also
if (1 == true) alert("Eins ist gleich true");
ausgegeben würde, aber in einer Switch-Anweisung
switch (true) {
case 1: alert("Eins ist gleich true");
}
jenes nicht zum Erfolg führt. D.h. mein obgies Beispiel würde in JacaScript gar nicht gleicher maßen funktionieren.
Viele Grüße,
der Bademeister