zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

 ( a > b && 45 <= summe  ) ||  (summe < a + b && d > 90 )

Ausdrücke und Unterausdrücke

a + bist ein arithmetischer Ausdruck
summe < a + bist ein relationaler Ausdruck,
ein Typ eines Boole'schen Ausdrucks
d > 90ist ein relationaler Ausdruck,
ein Typ eines Boole'schen Ausdrucks
summe < a + b && d > 90ist 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.

FRAGE 17:

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")