Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Inkrement - und Dekrementoperatoren » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 6 Beiträge
HJ.S

Vielen Dank :-)
eulerscheZahl

Probier es doch einfach aus. Augenzwinkern
Ja, es ist richtig.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
int x, z = 10;
System.out.println(x = z++); //10
System.out.println("x = " + x + "   z = " + z); //x = 10   z = 11
System.out.println(z = ++x); //11
System.out.println("x = " + x + "   z = " + z); //x = 11   z = 11
System.out.println(x += ++z); //23
System.out.println("x = " + x + "   z = " + z); //x = 23   z = 12
System.out.println(z += x++); //35
System.out.println("x = " + x + "   z = " + z); //x = 24   z = 35
HJ.S

Vielen Dank für die Antworten.

Wenn ich jetzt folgenden Code habe:

[CODE]
int x, z=10;
System.out.println(x=z++); // z++ wird ausgewertet, z = 10; z wird in x geschrieben und z um 1 erhöht auf 11; x = 10, z=11;
System.out.println (z = ++x); //x wird zuerst um eins erhöht und dann z zugewiesen, also ist z = 11 und x = 11;
System.out.println (x += ++z); // ++z hat die höhere Priorität, also wird z=12, x=11 und das Resultat 23;
System.out.println (z += x++); // x++ hat wieder höhere Priorität, bleibt aber vorerst bei 23 , z = z+x; somit als Ergebnis 35.


Wäre das richtig?
ed209

Beides wird zur selben Zeit ausgefuehrt. Der Unterschied ist der Rueckgabewert.

Versuche folgenden Code auszuführen. Sowohl a als auch b haben am Ende denselben Wert.

code:
1:
2:
3:
4:
5:
6:
int a=42; 
System.out.println("Postinkrement: ".(a++));
int b=42;
System.out.println("Präinkrement: ".(++b));


Der Code ist in Java, aber sollte leicht in andere Sprachen überführbar sein.

Gruss,
ED
eulerscheZahl

Nach der Anweisung.
Beispiel:
a = 1
b = a++; //b=1, a=2
Du kannst aber auch Murks damit machen:
a = a++; //nicht definiert, solltest du deshalb lieber nicht machen.
b = a++ + ++a; //auch nicht definiert
Wenn du eine Variable mit a++ bzw. ++a erhöhst, darf sie im restlichen Ausdruck nicht nochmal vorkommen.
HJ.S Inkrement - und Dekrementoperatoren

Meine Frage:
Hallo,

eine Frage zu Inkrement und Dekrementoperatoren.

Inkremet bedeutet doch, dass eine Variable (ich nenne sie a) um 1 erhöht wird (je nachdem ob Pre-Inkrement oder Postinkrement ist der Rückgabewert a+1 oder a).

Meine Frage ist zu Postinkrement: Wann wird denn die Erhöhung der Variable durchgeführt? Erst wenn die komplette Codezeile durchgeführt ist? Oder ganze Anweisungsblöcke? Ich werde da nicht schlau daraus :-)

Meine Ideen:
Vielen Dank.