Ich habe eine lange Reihe von Vergleichen in Java zu tun, und ich würde gerne wissen, ob einer oder mehrere von ihnen als wahr herauskommen. Die Reihe der Vergleiche war lang und schwer zu lesen, daher habe ich sie aus Gründen der Lesbarkeit getrennt und ging automatisch zur Verwendung eines Verknüpfungsoperators |=
anstelle von negativeValue = negativeValue || boolean
.Abkürzung "or-assignment" (| =) Operator in Java
boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
Ich erwarte, dass negativeValue
um wahr zu sein, wenn eine der Standard <etwas> Werte negativ sind. Ist das gültig? Wird es tun, was ich erwarte? Ich konnte es nicht auf Suns Website oder Stackoverflow erwähnt sehen, aber Eclipse scheint kein Problem damit zu haben und der Code kompiliert und läuft.
Und falls ich mehrere logische Schnittstellen durchführen wollte, könnte ich verwenden &=
statt &&
?
Warum versuchst du es nicht? – Roman
Dies ist eine allgemeine boolesche Logik, nicht nur Java. damit Sie es an anderen Orten nachschlagen können. Und warum versuchst du es nicht einfach? – Dykam
@Dykam: Nein, hier gibt es ein spezifisches Verhalten. Java * könnte * wählen, dass | = kurzgeschlossen wird, so dass es die RHS nicht auswertet, wenn die LHS bereits wahr ist - aber das tut es nicht. –