当前位置: 代码迷 >> J2SE >> 求大神解释:运算符的优先顺序解决思路
  详细解决方案

求大神解释:运算符的优先顺序解决思路

热度:10   发布时间:2016-04-23 20:04:23.0
求大神解释:运算符的优先顺序
我们都知道代码:
int a=3,b;
b=a++;
打印结果为a =4,b=3;
如果上面写为:
int a=3,b;
b=(a++);
打印结果为何 b 也是3那?

延伸一下: 
int i=0;
while((i++)<10)
{
System.out.println("i="+i);

System.out.println("i="+i);
i 又是如何打印,i的最终值又是多少那?
以上还请大神帮忙解释一下由来,十分感谢!!
------解决思路----------------------
1、这与运算符的顺序没有关系,你了解一下a++与 ++a的区别你就知道了
2、
while((i++)<10)
{
;
}

相当于
while(i<10)
{
i++;
}
 
------解决思路----------------------
改成++a,不就可以了,i++与++i,最基础的了,一个先赋值后加,一个先加后赋值
------解决思路----------------------
虽然加了(),但是如果++在后面的话,他还是先参加运算,后复制的。

你的while循环输出的应该是0——9吧












------解决思路----------------------

的确是先进行的a++,而且a已经是4了,只不过提前把a自增一之前的3暂存在栈中,后面store到slot2(即局部变量b的存储单元),后面输出的b也是slot2中3
------解决思路----------------------
因为你加了()还是先运行a++,而a++在这个表达式里面本来就是先运行的,你加不加括号其实是一样的
  相关解决方案