Wie wird dieser Ausdruck in Java korrekt geklammert?

2 Antworten

Die meisten Operationen sind links-assoziativ, d.h. a + b - c ist (a + b) - c, und a || b || c ist (a || b) || c.

|| hat eine geringere Priorität als ==, was wiederum eine geringere Priorität als + und - hat. Also:

((((i - j) + k) == 0) || (i != j)) || (k != 0)


monkeyman02 
Beitragsersteller
 13.01.2025, 03:06

Vielen Dank! Ich habe tatsächlich einfach am Anfang eine Klammer vergessen.

Das ist sinnbefreit, solange nicht etwas anderes ausgedrückt werden soll, als der Ausdruck auch ohne Klammerungen ausdrückt.

D.h. es bräuchte die eigentliche Aussage und dann muß ggf. geklammert werden.


monkeyman02 
Beitragsersteller
 13.01.2025, 02:43

Als Übung sollen aber verschiedene Ausdrücke nach der Reihenfolge der Operationen in Java geklammert werden.

KarlRanseierIII  13.01.2025, 13:34
@monkeyman02

DAS wiederum ist eine andere Fragestellung.

+ und - haben höchste Präzedenz (in diesem Ausdruck):

(i - j + k) == 0 || i != j || k != 0

Vergleiche haben höhere Präzedenz als logische Verknüpfungen:

( (i - j + k) == 0 ) || ( i != j ) || ( k != 0)

P.S.: Wenn Du die Assoziativität hinzunimmst, dann wäre die Antwort von VBA wohl die vollständige Variante.