mehrfache Variablen Änderung in einem Ausdruck



  • Hi zusammen,

    meine Frage ist ob solche sachen erlaubt sind:

    boolean erg2 = 5 > 3 || (erg2 = false);
    
    int a = 3;
    int erg3 = ++a + ++a;
    

    Bei C++ ist es ja so, dass es nicht erlaubt ist in einem Ausdruck eine Variable mehrmals zu verändern.
    Nun wollte ich wissen, ob dies in Java auch so ist.
    Habe mal in der Java Specifikation geschaut, ob ich etwas finde. Gefunden habe ich das hier.
    Wenn etwas dazu in der Specification steht, würde ich gerne den Paragraphen erfahren.

    Danke im voraus.



  • Probiers doch einfach aus??? 🙄

    .

    .

    .

    Ja, es geht.



  • Ausprobiert hatte ich das schon, bin zum selben Ergebniss gekommen.
    Es ist nur, das nicht alles was funktioniert auch erlaubt seien muss.

    Ich würde gerne die Gewissheit haben, was darüber in der Spezifikation steht.

    Trozdem danke 🙂



  • Ich glaube, für dich ist Kapitel 15.7 von Bedeutung - Operanden werden von rechts nach links ausgewertet (C(++) garantiert das nicht unbedingt, deshalb würden Ausdrücke wie oben dort zu undefiniertem Verhalten führen).



  • C Newbie@NotAtHome schrieb:

    Ausprobiert hatte ich das schon, bin zum selben Ergebniss gekommen.
    Es ist nur, das nicht alles was funktioniert auch erlaubt seien muss.

    Ich würde gerne die Gewissheit haben, was darüber in der Spezifikation steht.

    Trozdem danke 🙂

    Achso, also ein Paragraphen, der das genau festlegt, kann ich nicht bieten. Aber bei Java kannst du i.A. davon ausgehen, dass "funktioniert = erlaubt" ist 😉



  • Danke ihr beiden Kapitel 15.7 ist genau das was ich gebraucht habe.


Anmelden zum Antworten