Die einzige Möglichkeit, dies mit einem einzigen Schalter zu tun, besteht darin, zuerst die beiden Werte zusammenzufassen, den mit der höchsten Priorität zu finden und den Schalter auf das Ergebnis anzuwenden. In Ihrem Beispiel das Minimum von s1 und s2, und das Ergebnis einschalten.
Da "a" bis "g" ein Beispiel sind, müssen Sie eine sinnvolle Möglichkeit haben, die echten Werte zuerst zu bewerten.
Haben Sie darüber nachgedacht, die Anweisung switch nicht zu verwenden, sondern Lookup-Tabellen zu verwenden?
%Vor%Wenn Sie eine andere Menge von Werten für s2Value benötigen, können Sie eine zweite Map erstellen, um diese zu ziehen.
Da Sie einen switch verwenden wollten, bedeutet das, dass die möglichen Kandidaten und Werte eine feste, zur Entwicklungszeit bekannte Liste sind. Daher sollte eine statisch initialisierte Map wie diese nicht verwendet werden Problem.
Sie können tun, was Sie wollen, ohne einen Schalter zu benutzen, indem Sie einfach folgendes schreiben:
%Vor%Was ich nicht vollständig verstehe, ist, was meinst du mit
%Vor%Möchten Sie so etwas machen?
%Vor%AKTUALISIEREN
In Kommentaren hast du geschrieben:
s1="g" und s2="g" vor dem Eingeben des Schalters, dann ist der einzige Fall, der wahr ergibt, die Groß- / Kleinschreibung "g" und so werden sowohl s1Value als auch s2Value 6 und verlassen dann den Schalter .
Also, ich denke, Sie sagen, dass s1 und s2 mit dem gleichen Wert initialisiert werden, also:
%Vor%Dies sollte tun, was Sie wollen
UPDATE 2
Mit s1="a" und s2="d" betrachten wir den Fall "a", mit s1="c" und s2="b" betrachten wir den Fall "b"
Versuchen Sie Folgendes:
%Vor%Es sollte den Trick machen, testen Sie es und lassen Sie mich wissen, ob es funktioniert
Tags und Links java variables switch-statement int logic