黑马程序员技术交流社区
标题:
关于自增减运算符优先级的一个问题
[打印本页]
作者:
愿爱无忧
时间:
2015-12-15 23:14
标题:
关于自增减运算符优先级的一个问题
自增++与自减--之前一直觉得很明白,几乎也没在这个知识点错过,但今天做作业四个题全错了,才明白自己还是理解的不够透彻
这几道题是用来强化短路与和短路或的,我做这题的时候,莫名地想到了运算符优先级,就看了下教材,上面写着++与--优先级为2,短路与或排在11和12
于是我就想应该先算自增,于是就全错了
现在还是没清楚优先级的问题,下面是那几道题:
int x = 1,y = 1;
if(x++==1 | ++y==1){
x = 7;
}
System.out.println("x="+x+",y="+y);
int x = 1,y = 1;
if(x++==1 || ++y==1){
x = 7;
}
System.out.println("x="+x+",y="+y);
int x = 1,y = 1;
if(x++ ==2 & ++y==2){
x = 7;
}
System.out.println("x="+x+",y="+y);
int x = 1,y = 1;
if(x++==2 && ++y==2){
x=7;
}
System.out.println("x ="+x+",y="+y);
作者:
愿爱无忧
时间:
2015-12-15 23:15
我现在只是记住了,++放后面要在整个句子完成之后再运算,但书上那个优先级是啥意思呢?
作者:
xingchen5645
时间:
2015-12-16 02:14
如果++(--)不参与运算,比如:a++; 则都是自加一,若是参与运算,则++在前是先进性运算后赋值,若是++在后则先赋值后运算,归结于JAVA运算语句从左至右。
作者:
Java1211张美红
时间:
2015-12-16 09:25
会算就可以了!
作者:
姚成晖
时间:
2015-12-16 17:44
优先级的意思 是++和与或这几个运算符 先运算自增 这个没错
但x++和++x都是自增1,
你错的原因是没搞明白 x++ 和++x有什么区别
作者:
愿爱无忧
时间:
2015-12-16 18:34
想起那天同桌给我讲解的,x++确实是先进行了自增,但是参与语句运算的还是自增之前的值,而++x自增后参与语句运算的是自增之后的值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2