Java verkettet Ungleichheit, wenn (5<i<10)
Ist es jedem Betreiber oder trick für eine solche operation?
Oder ist es notwendig,
if(5<i && i<10)
?
- Was ist die Bedeutung des
i<10
Zustand ? - Zahl zwischen 5 und 10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es so etwas nicht in Java (es sei denn, Sie arbeiten mit booleans).
Den
5<i
Ergebnisse in einen booleschen auf der linken Seite auf<10
die der compiler nicht mag.Können Sie keine Kette Ungleichheiten. Sie können jedoch definieren Sie eine statische boolean-Methode
isInRange(value, low, high)
ausführen, wie eine solche Prüfung.Einige andere Sprachen, wie Python oder Symbol, können Sie diese notation.
isInRange(low, value, high)
z.B.isInRange(5, i, 10)
.Können Sie mit einem einfachen Vergleich, ist aber komplizierter als sein Wert in der Regel.
Diese verwendet Unterlauf, wenn Sie alle den Wert 5 und darunter zu einem großen positiven Wert.
Der einzige Grund, warum Sie verwenden würden, das ist wie eine Mikro-Optimierung.
6
zweimal, wahrscheinlich etwas OP vermeiden möchte.Ich fürchte, angekettet Ungleichheiten werden nicht unterstützt in Java zu dieser Zeit. Überprüfen Sie diese post für Sprachen, die tun.
Bereich
Vergleiche können verkettet werden, in Java.
Den standard-Weg für eine Reihe prüfen, ist die Verwendung entweder Guave Reicht:
oder Apache Commons Lang (es gibt nur geschlossene Bereiche, obwohl):
a < x < b ist äquivalent zu (x-a)(x-b)<0, oder wenn x ist ein Ausdruck, den Sie will nur einmal berechnen,
(x - (a+b)/2) ^ 2 < (b-a)^2 /4
Gleiche Angebot mit zwei nichtstrikten die Gleichheit. Ich glaube nicht, dass es einen Weg für den Umgang mit einer strengen und einer nichtstrikten Gleichheit, jedoch (es sei denn, x ist eine ganze Zahl).