diff --git a/Operator-Rangfolge.md b/Operator-Rangfolge.md index 63337fa..747428b 100644 --- a/Operator-Rangfolge.md +++ b/Operator-Rangfolge.md @@ -4,15 +4,17 @@ Rangfolge der Operatoren, von stark zu schwach bindend. | Typ | Symbole | Beispiele | Anmerkungen | | --------------------------------- | ------------- | ----------------------- | ----------------------------| -| Unäre Operatoren | -, !, ++, -- | | | -| Multiplikation, Division, Modulus | *, /, % | | | -| Addition, Subtraktion | +, - | | | -| Relationale Operatoren | <, >, <=, >= | | | -| Gleichheits-Operatoren | ==, != | | | -| Logische Operatoren | &, \| | | | -| Short-Circuit-Operatoren | &&, \|\| | | | -| Zuweisungs-Operatoren | =, +=, -= | | | +| Unäre Operatoren | -, !, ++, -- | -7 * 4, !myBoolean | | +| Multiplikation, Division, Modulus | *, /, % | 7 % 4 | `/ 0` erzeugt Exception | +| Addition, Subtraktion | +, - | 7 + 4 | | +| Relationale Operatoren | <, >, <=, >= | y > x | | +| Gleichheits-Operatoren | ==, != | y != x | Referenz bei Objekten, nicht mi equals verwechseln! Sonderfall String! +| Logische Operatoren | &, \| | myBool & yourBool | Beide Ausdrücke immer ausgewertet | +| Short-Circuit-Operatoren | &&, \|\| | myBool || yourBool | Auswertung bei Klarheit abgebrochen, damit ggf. keine Seiteneffekte | +| Zuweisungs-Operatoren | =, +=, -= | x += 5 | Zuweisung sehr niedrig priorisiert, | +- Bei gleicher Priorität von links nach rechts, durch Klammerung kann Vorrang geändert werden. +- - Wo ist der tenäre Operator? ## Stolperfallen @@ -21,4 +23,5 @@ Rangfolge der Operatoren, von stark zu schwach bindend. - Short-circuit verhindert Ausführung der weiteren Anweisungen. Darauf achten, ob Seiteneffekte ausgeführt werden! - Operatoren können in seltenen Fällen unterschiedliche Bedeutung haben (boolean vs. Zahlen, Bit-Shifting) - Nicht alle sind bei allen Datentypen erlaubt (`*=`) +- `==` und `equals` bei Objekten beachten. String ist ein Sonderfall, da sogar Art der Erzeugung relevant.