日期:2014-05-20  浏览次数:20686 次

简单的很的我在这里来问java运算符问题
int i=5;
System.out.println(9-i--);和
  int i=5;
System.out.println(9-(i--));
  为什么两次都是4
  我才第一次是4 第二次是5
  第二次 不是9-(i--));相当于 9-(5-1));么先括号在外面
  呵呵 这个问题在群里问 好像都鄙视我啊!我就来这里了!呵呵谢谢大家帮助
 还劳驾讲的清楚点 !



------解决方案--------------------
i--的递减操作符是优先与-减号操作符的,所以不管加没加括号都是一回事。
------解决方案--------------------
9-i-- == 9-(i--)
------解决方案--------------------
探讨
i--的递减操作符是优先与-减号操作符的,所以不管加没加括号都是一回事。

------解决方案--------------------
首先你要明白"--"的意思如果它在变量的前面就表示先减减在赋值,如果在后面就表示先赋值在减减,System.out.println(9-(i--));当前(i--)为什么是5是应为它先赋值,当你下一次输出i的值的时候他才会减减