首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个JAVA优先级的有关问题,请高手帮忙解释一下

2012-01-24 
一个JAVA优先级的问题,请高手帮忙解释一下!booleanm,nintx5,y10m(x y&&x++y--)inta5,b5n(a

一个JAVA优先级的问题,请高手帮忙解释一下!
boolean   m,n;
                  int   x=5,y=10;
m=(x> y&&x++==y--);
int   a=5,b=5;
n=(a> b&&a++==b--);
System.out.println( "m= "+m);
System.out.println( "n= "+n);
System.out.println( "a= "+a+ ",b= "+b);

这里为什么n的值也是FALSE,我觉得++和--的优先级要高于&&和> ,那就应该先算++和--
,那这样a和b的值就变了,在算逻辑的时候a> b就不会短路了啊!   请高手帮忙解释一下!

[解决办法]
n=(a> b&&a++==b--);
并不是优先级的问题,因为&&县判断前面的逻辑正确性,当前面为False直接退出判断,所以你的后面a++==b--跟本不去执行。
所以高手编程&&总是true机率高的放在后面,|| 总是true几率小的放在后面,提高效率

热点排行
Bad Request.