W
Das ist nicht richtig. Mal abgesehen davon, dass man die Sprache selbst definieren könnte, gibt es z. B. in SQL eine erweiterte Form des SELECT CASE-Statements:Davon abgesehen funktioniert switch / case in jeder Sprache nur für fixe Werte
SELECT name, CASE bmi
WHEN < 20.5 THEN 'Untergewicht'
WHEN < 25.5 THEN 'Idealgewicht'
WHEN < 30.5 THEN 'Übergewicht'
ELSE 'Fettleibigkeit'
END
FROM personen;
Was spielen denn die Namen für eine Rolle? Mal abgesehen davon, entspräche diese Art der Verwendung auch eher der mathematischen Notation.In deinem SQL Beispiel ist das explizit anders benannt.
var bmi = 27.0;
switch(true) {
case bmi < 20.5: window.alert('Untergewicht'); break;
case bmi < 25.5: window.alert('Idealgewicht'); break;
case bmi < 30.5: window.alert('Übergewicht'); break;
default: window.alert('Fettleibigkeit');
}
Naja, wenn ich als Programmierer einen anderen Namen verwende, dann wird im Normalfall eine andere Methode aufgerufen oder ich krieg einen Syntaxerror.Was spielen denn die Namen für eine Rolle?
Untergekommen ist mir ein solches Statement mit dem Namen "switch" allerdings auch noch nicht. Seltsam ist das schon irgendwie...Wie gesagt, eine switch-Funktion (die auch so heißt), die was anderes macht als Werte auf Gleichheit zu prüfen, ist mir noch nicht untergekommen, aber ich lass mich gerne korrigieren.
Das ist aber schon ein ziemlich seltsames Kriterium. Es ist doch viel sinnvoller, statt namensgleicher Schlüsselwörter die jeweiligen Konzepte der verschiedenen Programmiersprachen zu vergleichen. Hier eben die Umsetzung für Mehrfachverzweigungen. Man würde doch auch beispielsweise eine JavaWie gesagt, eine switch-Funktion (die auch so heißt), die was anderes macht als Werte auf Gleichheit zu prüfen, ist mir noch nicht untergekommen, aber ich lass mich gerne korrigieren. Ist im Endeffekt aber auch wurscht.
do ... while
Schleife immer mit der Pascal repeat ... until
Schleife vergleichen, obwohl sie verschieden benannt sind.SELECT;
WHEN bmi < 20.5;
result = 'Untergewicht';
WHEN bmi < 25.5;
result = 'Idealgewicht';
WHEN bmi < 30.5;
result = 'Übergewicht';
OTHER;
result = 'Fettleibigkeit';
ENDSL;
Nein, der Vergleich hinkt etwas.Das ist aber schon ein ziemlich seltsames Kriterium. Es ist doch viel sinnvoller, statt namensgleicher Schlüsselwörter die jeweiligen Konzepte der verschiedenen Programmiersprachen zu vergleichen. [...] Das ist aber schon ein ziemlich seltsames Kriterium. Es ist doch viel sinnvoller, statt namensgleicher Schlüsselwörter die jeweiligen Konzepte der verschiedenen Programmiersprachen zu vergleichen.