( a > b && 45 <= summe ) || (summe < a + b && d > 90 )
a + b | ist ein arithmetischer Ausdruck | summe < a + b | ist ein relationaler Ausdruck, ein Typ eines Boole'schen Ausdrucks |
d > 90 | ist ein relationaler Ausdruck, ein Typ eines Boole'schen Ausdrucks |
summe < a + b && d > 90 | ist ein Boole'scher Ausdruck | ... und so weiter ... | Es gibt viele andere Unterausdrücke |
Der Boole'sche Ausdruck aus der Frage bestand aus Teilen, Unterausdrücke genannt, die selbst Ausdrücke sind. In Java (und anderen Programmiersprachen) ist es üblich komplizierte Ausdrücke aus kleineren Ausdrücken zusammenzusetzen. Präzedenz der Operatoren und Klammern sorgen für klare Regeln.
Arithmetische Operatoren *
, /
, +
, -
, und %
haben eine höhere Präzedenz als &&
und ||
, so dass sie zuerst ausgewertet werden.
Zum Beispiel:
summe < a + b
bedeutet
summe < (a + b)
Aber, der NOT-Operator (!
) hat eine höhere Präzedenz als alle arithmetischen
Operatoren, außer dem unären Minus, und hat eine höhere Präzedenz als
alle anderen logischen Operatoren. Gewöhnlich bedeutet das, dass wir Klammern verwenden müssen, um ihn korrekt anzuwenden.
Personen dürfen an einem Wettbewerb teilnehmen, es sei denn sie sind jünger als 21
Jahre, verdienen mehr als $100.000 oder leben in Ohio. Wir gruppieren den Boole'schen Ausdruck, so dass er true
ergibt, wenn eine Person an dem Wettbewerb teilnehmen kann.
! alter < 21 || einkommen > 100000 || land.equals("Ohio")