从零学Java(12)之算术运算符(++- -)

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零学Java(12)之算术运算符(++- -)相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

系列目录

从零学Java(12)之算术运算符(++、- -)
从零学Java(11)之算术运算符(加减乘除余)
从零学Java(10)之方法
从零学Java(9)之修饰符
从零学Java(8)之变量
从零学Java(7)之数据类型
从零学Java(6)之字面量和常量
从零学Java(5)之关键字和保留字
从零学Java(4)之编程规范
从零学Java(3)之第一个实例HelloWorld
从零学Java(2)之搭建开发环境
从零学Java(1)之面向对象

引言

♀ 小AD:明哥,快带我上分!我自己玩掉了好多星,太坑了!
♂ 明世隐:是你坑吧,怪别人?
♀ 小AD:分明是小学生多,太坑,人家这么可爱能有什么坏心思呢?
♂ 明世隐:人家小学生更可爱,能有什么坏心思,听说小学生以后限制只能玩一个小时了,咋样?
♀ 小AD:猛烈鼓掌!真的是天大的喜事啊,珍爱小星星、远离小学生
♂ 明世隐:不过我今天不能带你了,我得自己去打我的王者后,这有段时候没打,要掉回到星耀了。
♀ 小AD:啊,怎么会有这样的。
♂ 明世隐:是的,这是隐藏的机制,你这段位你不懂。
♀ 小AD:这么说我不配知道咯,哼。。。,我不跟你玩了,就知道欺负人。
♂ 明世隐:我的意思是你以后肯定能上王者,只是时间问题,别想多。
♀ 小AD:算你有良心,那怎么就会掉星星呢?
♂ 明世隐:就是隔一段时候没有去打,就会掉一些星星,持续的。
♀ 小AD:哦这样啊,我就知道每局游戏里面金币,会经常自动增加。
♂ 明世隐:对这是一个道理,只不过一个加、一个减。正好今天来学一下Java自增、自减,原理类似。
♀ 小AD:哥,我好像掉套路里面了,你不能这样,我还要上分呢。
♂ 明世隐:上分还不是分分钟,就看你学的怎么样。
♀ 小AD:那好吧,学的话你就放心了,我学啥都是快!
♂ 明世隐:但愿如此。

定义

自增(++)自减(- -)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。

运算符描述实例
++自增: 操作数的值增加1a++,++a
- -自减: 操作数的值增减1a- -,- -a

实例1

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:洗耳恭听!

“经典”实例

场景假定:

敌方打野正在打红buff,而你在旁边蹲守。
变量a得到红buff的属性。
变量b表示是否得到红buff的击杀金币。

1.a++实例

敌方打野击杀了红buff,而你击杀了他。
没有得到击杀红buff的金币,但是得到了红buff的效果。

2.++a实例

你击杀了红buff,同时你击杀了敌方打野。
既得到击杀红buff的金币,又得到了红buff的效果。

分析

不管是 a++、++a 红buff是拿定了,但是如果敌方打野是在拿到红buff前被击杀,还是拿到红buff后被击杀,就是区别了。
敌方打野拿了红buff再被你杀,表示后杀敌人等同于a++,也就是你跟红buff的金币没关系。
敌方打野未拿红buff就被你杀,表示先杀敌人等同于++a,也就是你得到红buff的金币。

♂ 明世隐:这样说更清晰了撒。
♀ 小AD:嗯,不愧是你明哥,这样都能举出例子了,我对你的敬仰真的是如滔滔江水连绵不绝啊。
♂ 明世隐:少拍马屁,我都被你说上天了,赶紧的,要上分快点,打完我还得去另一个号整两盘,省的给我掉下来。
♀ 小AD:好嘞,这就上号。

小结

这节学习了Java “算术运算符(++、- -)” 的知识,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。


相关阅读

1. Java俄罗斯方块
2. 老Java程序员花2天写了个连连看
3. 老Java程序员花一天时间写了个飞机大战
4. JavaWeb图书管理系统
5. JavaWeb学生宿舍管理系统
6. JavaWeb在线考试系统


为了帮助更多小白从零进阶 Java 工程师,从CSDN官方那边搞来了一套 《Java 工程师学习成长知识图谱》,尺寸 870mm x 560mm,展开后有一张办公桌大小,也可以折叠成一本书的尺寸,原件129元现价 29 元先到先得,有兴趣的小伙伴可以了解一下

以上是关于从零学Java(12)之算术运算符(++- -)的主要内容,如果未能解决你的问题,请参考以下文章

从零学Java(13)之关系运算符

从零学Java(16)之赋值运算符

从零学Java(18)之三元运算符

从零学Java(15)之逻辑运算符02

从零学Java(30)之递归

从零学Java——标识符变量运算符