2012-04-06 30 views

Antwort

2
i = i++ + f1(i); 

ersten i wird auf 1 erhöht und rufe f1 (1) und es Sie drucken i, die 1 druckt, und gibt 0 die i des Hauptverfahrens in speichert durch Berechnung 0 + 0 und Sie drucken es in Haupt so dass der Ausgang wird 1, 0

+1

Wie speichert es in "i"? –

+2

Beachten Sie, dass der Wert des Ausdrucks 'i ++' der Wert von i ist, bevor er inkrementiert wurde, so dass 'i = i ++ + f1 (i)' wird 'i = 0 + f1 (1)' – Anthales

5

Blick auf den Ausdruck:

i = i++ + f1(i); 

Eine Sache, die Sie brauchen hier zu verstehen ist, was genau i++ tut und kehrt: es erhöht i, aber gibt den alten Wert von i. Also, wenn i == 0, dann i++ schreitet i zu 1, aber der resultierende Wert des Ausdrucks ist 0.

In Java werden Ausdrücke von links nach rechts ausgewertet. In dem obigen Ausdruck wird i++ zuerst ausgewertet und dann f1(i).

Nach i++, i == 1 so ist f1(i) eigentlich f1(1). Diese Methode gibt den Wert i, also 1, mit einem Komma nach und gibt 0 zurück.

Da i++ den alten Wert von i zurück (bevor es erhöht wurde), der Ausdruck wird:

i = 0 + 0; 

Der erste 0 das Ergebnis i++ ist, ist der zweite 0 das Ergebnis f1(i). So wird i0 zugewiesen. Schließlich drucken Sie den Wert i.

+0

+1 i ++ erhöht den Wert aber gibt alten Wert zurück. –

+0

schön. Danke –

Verwandte Themen