2012-01-09 7 views
0

可能性の重複:
What is x after “x = x++”?Postfixのコンセプト

が、私はこの出力を見てショックを受けていますし、それは私を助けてください、内部で働いているかを知りたいです。

int i=0; 
i = i++; 
System.out.println(i); 
i=i++; 
System.out.println(i); 

出力は

int i=0; 
i++;//note the removed i = 
System.out.println(i); 
i++;//note the removed i = 
System.out.println(i); 

から0と0

+0

http://stackoverflow.com/questions/3831341/why-does-this-go-into-an-infinite-loopこれをお読みください。 – SHiRKiT

答えて

1

変更それは、それは

Oracle documentationとそのdemo codeを参照してください、そして最も関連を引用することが期待通りに動作します部

増分/減分演算子は、オペランドの前に(接頭辞)または後に(後置に)適用できます。コード結果++; ++結果;結果は両方とも1だけインクリメントされます。唯一の違いは、接頭辞バージョン(++ result)はインクリメントされた値に評価され、後置バージョン(result ++)は元の値に評価される点です。単純な増分/減分を実行しているだけの場合は、どのバージョンを選択するかは問題になりません。しかし、より大きな式の一部でこの演算子を使用すると、選択した演算子が大きな違いを生むことがあります。

+0

私のIDE(IntelliJ)の質問からコードを実行しようとしましたが、i ++の結果が一度も使用されないという事実についても警告します – Robin

+0

ありがとうRobin、あなたのコメントと[janeg.ca/scjp/ oper/prefix.html]。 –