x+++y 的优先级,在学Java基础的时候是有相关介绍的,但是一般能不记的东西我都不会去记,因为人懒,所以这里的优先级我就不记得了,但是当想知道的时候怎么办?写代码验证一下即可,如下:
int x = 1;
int y = 1;
int z = x+++y;
System.out.println(x);
System.out.println(y);
// 输出结果为 2和1,说明x自增了,所以上面的表达式优先级为int z = (x++) + y;
如果想要y自增怎么办?加括号即可:int z = x + (++y);
在这里想引出的问题是,遇到一些能写代码证明的知识,我们就大胆地写代码去证明,不要只用脑子想,脑子想往往是不准确的。另外还想要告诉大家,在真实的项目开发当中,不要写如下类似的代码:
int z = x+++y;
int z = i+++j+i+++k;
类似这些复杂的代码,请加括号,或者直接分行写,如:
int z = x+++y;
如上表达式可写成:
int z = (x++) + y;
或:
x++;
int z = x + y;
如果笔试中你写了x+++y这样的代码,如果面试官是我,那就这一道题,我就直接OUT。因为实际工作中一般都是多人共同开发,
你写这样的代码别人很难看懂,不利于团队协作开发。