public class Operator3 {
public static void main(String[] args) {
int a=100;
int b=a++;
System.out.println(“a==”+a);
System.out.println(“b==”+b);
}
}
运行结果
♀ 小AD:a=101我能明白,因为a++就是递增1,但是b不是等于a++吗?怎么b等于100呢?
♂ 明世隐:a递增1确实没有疑问,int b = a++;的话,是先赋值再递增,
♀ 小AD:先赋值再递增,不也是101吗
♂ 明世隐:赋值是给b赋值,递增又不是给b递增,是给a递增,我把这句分解一下,就很好理解。
♀ 小AD:好
public class Operator3 {
public static void main(String[] args) {
int a=100;
//int b=a++;
int b=a;
a++;
System.out.println(“a==”+a);
System.out.println(“b==”+b);
}
}
♂ 明世隐:通过上面的分解,应该很好理解了吧,
♀ 小AD:嗯,这样我就明白了,分解成这样我就很清楚了,等于先把a赋值给b了,然后再做a的自增操作。
♂ 明世隐:嗯对的,那 - -也是一样的,举个例子就明白了。
[](()实例2
================================================================
public class Operator3 {
public static void main(String[] args) {
int a=100;
int b=a–;
System.out.println(“a==”+a);
System.out.println(“b==”+b);
}
}
♀ 小AD:哥,这个我肯定知道
♂ 明世隐:你说说
♀ 小AD:a自减,所以a打印出99,b是在自减前赋值了,所以b是100,a后面的自减对b没有影响。
♂ 明世隐:回答正确,非常好。
♀ 小AD:谢明哥
♂ 明世隐:刚才我们看的例子是++、–在后面的,我们再看看++ - -在前面的。
[](()实例3
================================================================
public class Operator3 {
public static void main(String[] args) {
int a=100;
int b=++a;
System.out.println(“a==”+a);
System.out.println(“b==”+b);
}
}
运行结果:
♀ 小AD:哥这次怎么就都是101了吗,你之前不是说要先赋值,在递增吗?
♂ 明世隐:我是这么说过,但是你仔细看显示++是在前面的。
♀ 小AD:嗯,我看到了,有什么区别吗?不都是递增吗?
♂ 明世隐:有区别的,就是++在前面的是先递增,再赋值。
♀ 小AD:那你还是分解一下吧。
♂ 明世隐:好
public class Operator3 {
public static void main(String[] args) {
int a=100;
//int b=++a;
++a;
int b=a;
System.out.println(“a==”+a);
System.out.println(“b==”+b);
}
}
♀ 小AD:明哥这样我就明白了,就是递增动作执行顺序的问题了。
♂ 明世隐:是的呀,其实也好理解的。
♀ 小AD:是不是还有- - 在前面的,我来写一下试试。
♂ 明世隐:好,随意。
[](()实例4
================================================================
public class Operator3 {
public static void main(String[] args) {
int a=100;
int b=–a;
System.out.println(“a==”+a);
System.out.println(“b==”+b);
}
}
♀ 小AD:哥,这个我完全会了,我还总结了一句话。
♂ 明世隐:哦,大聪明,你又要开始了呀。
♀ 小AD:前++是先自加再使用,后++是先使用再自加。
♂ 明世隐:鼓掌,这样就简单易懂了,一下就记住了。
♀ 小AD:哥,我还是想听你举个王总里面的例子,我比较喜欢。
♂ 明世隐:额,这个有点麻烦,我想想,有了,难不倒你明哥。
♀ 小AD:就知道明哥主意多。
♂ 明世隐:就比如对方打野正在打红buff来举例
♀ 小AD:洗耳恭听!
[](()“经典”实例
========= 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 ==========================================================
[](()场景假定:
敌方打野正在打红buff,而你在旁边蹲守。
变量a得到红buff的属性。
变量b表示是否得到红buff的击杀金币。
[](()1.a++实例



