其实基本的运算符使用每个人都会,但是有时候细节的处理还欠缺火候,导致面试上出现失误。从自身小菜鸟的经历出发,比较难理解的就是 a++ 和 ++ a的使用顺序问题,虽然很明白,但是有时候会很蒙。具体的理解都在注释中:
public static void main(String[] args) {
int a, b, c;
a = b = c = 5;
// int a= b = c = 5; 这是错误的写法
System.out.println("a = " + a); // 输出 a = 5
System.out.println("b = " + b); // 输出 b = 5
System.out.println("c = " + c); // 输出 c = 5
a += 5; // 等同于 a = a+5, 其他 -= ,%=,/=, *= 同理
System.out.println("a = " + a); // 输出 a = 10
/**
* 比较难理解和记忆的就是 a++ 与 ++a的区别了
*
* a++ : 先执行有关a的操作,此时a为原值;当原值相关逻辑执行完毕后,再执行a = a+1;
* ++ a: 不管a的相关逻辑是啥, 最先执行的都是a = a+1,然后再执行后续逻辑
*
* 个人理解就是: a++ 把a拿去用,最后给钱(最后+1);
* ++a 先给钱(先加1),再把a拿去用
*/
System.out.println("b1 = " + (b++)); // 输出 b1 = 5
System.out.println("b2 = " + b); // 输出 b2 = 6
System.out.println("c= " + (++c)); // 输出 c = 6
}
输出结果:
a = 5
b = 5
c = 5
a = 10
b1 = 5
b2 = 6
c= 6