Java switch-Anweisung, um zwei Variablen zu behandeln?

8

Ich suche nach einer Möglichkeit, zwei Strings mit einem einzigen Schalter zu handhaben, ich halte das in Java für unmöglich.

Hier ist ein Pseudo-Code der Art von Dingen, die ich nur mit einem Schalter erreichen möchte.

%Vor%     
Ciphor 05.03.2013, 11:43
quelle

4 Antworten

8

Es ist nicht möglich, einen einzelnen Switch pro Anforderung zu verwenden. Dies ist so nah wie möglich mit Java.

%Vor%     
Java42 05.03.2013 12:11
quelle
4

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.

    
Emerson Farrugia 05.03.2013 12:16
quelle
4

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.

    
Jere 05.03.2013 13:57
quelle
1

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

    
BackSlash 05.03.2013 12:02
quelle