黑马程序员技术交流社区
标题:
运算符优先级别问题请教
[打印本页]
作者:
张清华
时间:
2015-5-24 23:14
标题:
运算符优先级别问题请教
int x = 1,y = 1;
if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
运行的结果是:x=2,y=2
按照老师上课讲的内容是:++在前: 先++,然后在运算(操作)
++在后: 先运算(操作),然后在++
可以得出正确答案。
但是按照运算符的优先级别顺序来看,++的优先级是高于=赋值运算符的,按照运算符优先级顺序计算就会得出x=7,y=1
我怀疑自己肯定是钻了牛角尖,但是一直找不出原因,请各位大神指教
作者:
wwb1105
时间:
2015-5-24 23:27
因为x++是先比较再运算,先比较那么x是1,是不等于2的,即if里面的判断结果为false,那么也就不会执行if里面的内容了,所以结果为x=2
作者:
林思奇
时间:
2015-5-25 00:21
x++==2,先拿x和2比较后自增;++y==2,是y自增再和2比较,(x为2)false&true (y为2)不执行if条件
作者:
黯然残影
时间:
2015-5-25 01:24
x++先比较再自增,++x先自增,再比较
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2