Inkrement - und Dekrementoperatoren |
24.01.2016, 18:12 | Auf diesen Beitrag antworten » | |||||
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. |
|||||
|
||||||
24.01.2016, 18:17 | Auf diesen Beitrag antworten » | |||||
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. |
|||||
24.01.2016, 18:18 | Auf diesen Beitrag antworten » | |||||
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.
Der Code ist in Java, aber sollte leicht in andere Sprachen überführbar sein. Gruss, ED |
|||||
24.01.2016, 19:01 | Auf diesen Beitrag antworten » | |||||
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? |
|||||
Anzeige | ||||||
|
||||||
24.01.2016, 20:20 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Probier es doch einfach aus. Ja, es ist richtig.
|
|||||
24.01.2016, 20:39 | Auf diesen Beitrag antworten » | |||||
HJ.S | Vielen Dank :-) |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|