Datenschutzerklärung

Java

Validome - Forum

Startseite Validome
RSS 2.0  
Sie sind nicht angemeldet. Atom 1.0  
Forum Home / Sonstige Technologien /

Java

  Beitrag schreiben
Autor
Beitrag Seiten: 1
Omino
Gast



Hallo,
ich weiss nicht ob das Progrm. schon einen hohen Bekanntheitsgrad hat. Warum kommt aber für k, 8 heraus?
int a = 5;
int k = 2 * (a++) - 6;


13.12.2007 17:34:20
  Zitieren
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 544
Hi,
bei mir kommt richtigerweise 4 dabei raus (habs mal schnell in PHP probiert).


_______________________________________
mfg
Thomas Mell

www.validome.org

13.12.2007 19:36:31
  Zitieren
Omino
Gast



Ja meinte ich eh. aber muss nicht 6 herauskommen?

da es ja in klammern steht kann ja nichts anderes Vorrang haben. oder?
k = 2 * (a++) - 6
ist das nicht wie 2 * (a + 1) - 6
und da kommt ja 6 heraus, wenn a 5 ist

und selbst bei
k = 2 * ((((a++)))) - 6;
oder
k = (a++) * 2 - 6;
oder
k = -6 + (a++)*2
oder a und 2 umgedreht
kommt (komischer weise) 4 (anstatt 6) heraus warum?


13.12.2007 19:50:20
  Zitieren
blind-fish
Mitglied

Registriert: 19.07.2007
Beiträge: 22
Die Tücken des Prä-/Post-Inkrements: das Inkrement nach der Variablen (a++) bedeutet, dass die Variable auch erst nach der Rechnung um 1 erhöht wird. Will man, dass sie gleich erhöht wird, muss man ++a schreiben.

Gruß,
  blind-fish


13.12.2007 19:55:12
  Zitieren
Omino
Gast



Aha ok.
Aber wenn die variable dann erst nach der Rechnung erhöht wird
Warum kommt dann bei
a = 1;
k = a++ + a++;

k = 3 heraus?

a   ++ wird ja erst nach der rechnugng ausgeführt. Plus a    ++ wird auch erst NACH der Rechnungs ausgeführt.  Oder?

Übrigends: Es heißt
k = a++ +a++;
Und
k = a+ ++a++;
Kann es nicht sein, weil dann eine Fehlermeldung kommt


13.12.2007 21:16:39
  Zitieren
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 544
Die Variable wird nicht nach der gesamten Rechung erhöht, sondern nachdem sie "angefaßt" wurde (ein kleiner aber feiner Unterschied).
a = 1;
k = a++ + a++; kannst Du Dir folgendermaßen vorstellen:
k = a++; --- Danach ist k=1 und a=2
k+= a++; --- Danach ist k=3 da 1+2 und a=3


k = a++ +a++; ist das selbe wie k = a++ + a++;
k = a+ ++a++; ist natürlich falsch, entweder ++a oder a++


_______________________________________
mfg
Thomas Mell

www.validome.org

13.12.2007 21:55:10
  Zitieren
Seiten: 1   Beitrag schreiben
Wechsel zu

Die letzten Beiträge aus diesen Forum

Valid HTML 4.01