2017-09-13 83 views
-6

也许我错过了,但我不明白,为什么我得到的结果2这段代码:我想不通为什么我会得到结果2

i = 1; 
i = i-- - --i; 
System.out.println(i); 
+4

这是正确的,你在期待什么? – Mritunjay

+0

我在一些java问题中看到了这个。但在现实生活中,这是非常糟糕的做法。写得更简洁明了,对每个人都是可以理解的。 –

+0

你为什么不呢?你*是*递减'我'两次。你不应该这样做。 – dhke

回答

3

i = i-- - --i你有:

  • i--,一个后减量,以检索的i1)的当前值,然后递减至i0
  • -
  • --i,一个递减预,这再次递减i并检索更新后的值,-1

所以你最终i = 1 - -1这是2。不用说,这种事情显示出来(愚蠢的)Java测试等,但绝不应该出现在生产代码中。

+0

我不敢相信我没有抓住这个,感谢你的帮助。 – Antonio

相关问题