Froggerprogger hat geschrieben:Stichwort Select und Case (bzw. switch):
Ich vermisse in PB und Java, und wahrscheinlich auch in sämtlichen anderen Sprachen dieses Planeten außer beim guten alten QuickBasic die Möglichkeit, in Case-Zweigen auch Wertebereiche, bzw. mehrere Werte
[..]
Sicherlich läßt sich das mit Angabe von Wertebereichen nicht anders als wie mit if-Verzweigungen umsetzen,
Der Vorschlag gefällt mir sehr gut - grade weil er optisch gut lesbar ist. Ich beschäftige mich grade u.a. mit dem Redesign des Switch-Konstrukts und Dein Vorschlag steht noch nicht in meiner Liste. In wie weit das über Bedingungen oder über Suchalgorithmen laufen kann, kann der Compiler entscheiden - was eben im Einzelfall schneller ist.
Froggerprogger hat geschrieben:Auch müßten variable Ausdrücke erlaubt sein.
Variable Ausdrücke machen den 'Switch' kaputt, da switch eigentlich nicht die Bedingungen einzeln abfragt, sondern in Abhängigkeit des zu schaltenden Wertes optimierte Algorithmen erzeugt.
Sind die Case-Fälle aber variabel, können sie nicht mehr statisch kompiliert werden und müssen einzeln abgefragt werden.
Hier könnte man ein Art 'if() case' in Überlegung nehmen... das Schlüsselwort entspricht hier dem beauftragten Aufwand... das widerspricht keinem bisherigem Konstrukt... ich glaub' da geht was...
Froggerprogger hat geschrieben:Sollte man allerdings in den Case-Zweigen ein 'break' manuell setzen müssen (wie bei Java, das wurde bei PB irgendwann abgeschafft), könnte das mit variablen Ausdrücken sicherlich Probleme bereiten
Ein Problem wäre das nicht, das ist eher eine Frage der Definition. Ich habe mich noch nicht entschieden, ob ich das Break aus den Switchs rausnehme. Es zu lassen wäre logischer, da es aber (fast) grundsätzlich gebraucht wird, ist es eigentlich (fast) grundsätzlich überflüssig.
C# hat break innerhalb von Switch abgeschafft und verlangt für eine Fortsetzung ein "goto case".
Eine alternative Lösung, die mir eigentlich zur Zeit am ehesten zusagt.
In jedem Fall vielen Dank für die Anregung - sowas erhöht die Qualität zukünftiger Sprachen, genau für sowas ist die Wishlist gedacht; damit hat sich dieser Thread schon sehr gut für mich rentiert. Es sind halt die einfachen Ideen, die den Ausschlag geben.
