彻底搞懂a++和++a的区别
a++到底做了什么操作
a++是一组操作,它的过程是这样的(假设此时a的值为10):
- 获取到a的值,也就是10。
- 进行计算,也就是把获取到的值加一,得到计算后的结果,也就是11
- 把计算后的结果重新赋值给a,此时a为11
a++和++a的区别是什么
a++是进行上面讲的一组操作,这组操作执行完毕后返回之前取到的值,也就是10。
++a也是进行一组操作,只不过返回的是计算之后的值,也就是11。
使用技巧
可以把++看成一组操作,如果a写在++前,则表示返回计算前取到的值;如果a写在++后,则表示返回计算后的值。
练习
public class Test{public static void main(String[] args) {int a = 10;System.out.println(++a + a++ + ++a); //结果是35//输出a最终的值System.out.println(a); //结果是13}
}
分析
System.out.println(++a + a++ + ++a);
进行了3组操作。
- 第一组操作(++a):先执行一组操作,返回计算后的结果。计算前a=10,计算后a=11。此时a为11,返回值为11。
- 第二组操作(a++):先执行一组操作,返回计算前的结果。计算前a=11,计算后a=12。此时a为12,返回值为11。
- 第三组操作(++a):先执行一组操作,返回计算后的结果。计算前a=12,计算后a=13。此时a为13,返回值为13。
之后就是11+11+13=35,所有该语句打印35。
最后就是System.out.println(a);
,此时a=13,所以打印13。
搞懂a++和++a后,a–和--a也是同样的道理。
彻底搞懂a++和++a的区别相关推荐
- 一篇搞懂OOA/OOD/OOP的区别
文章目录 OOA OOD OOP 总结 相关文章: 一篇搞懂OOA/OOD/OOP的区别 面向对象的基本原则-抽象,封装,继承,分解 GRASP模式概述 面向对象的六大原则 OOA什么鬼,OOD又是什 ...
- 彻底搞懂BLDC与PMSM的区别
彻底搞懂BLDC与PMSM的区别 从结构上看 从控制上看 从应用上看 BLDC,直流无刷电机,也可以叫电子换向直流电机,反电势为梯形波,定子电流为矩形波,一般定子为集中整距绕组. PMSM,永磁同步电 ...
- 一文带你彻底搞懂i++和++i的区别,谁的效率更高?
作者简介:Codebowl靓仔,学妹的工具人,C++开发误入数据开发,梦想30岁退休的靓仔就是我啦. i++和++i对于初学者来说,一直是一个特别容易搞混的内容,相信很多人现在也没有完全搞清(作者初学 ...
- 多图 | 搞懂volatile和synchronized的区别
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「日拱一兵」 之前写了几篇 Java并发 ...
- 3分钟搞懂前后端开发的区别
上周末见了好多开发的年轻朋友,问了我一个问题:"前后端的区别和要求是什么?"分不清前后端开发的区别和要求,一种是因为前后端都了解,号称"全栈工程师",但又什么都 ...
- tcp udp区别优缺点_一文搞懂TCP与UDP的区别
一.TCP协议: 位于传输层, 提供可靠的字节流服务.所谓的字节流服务(Byte Stream Service) 是指, 为了方便传输, 将大块数据分割成以报文段(segment) 为单位的数据包进行 ...
- udp 使用connect优点_一文搞懂TCP和UDP的区别
TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇.TCP/IP协议集包括了超 ...
- jmeter进程和线程的区别_一文搞懂进程和线程的区别
计算机系统是由硬件和软件组成的,它们共同协作以运行应用程序.先来看下面这张一个典型的计算机系统的硬件组成图 从上图中看出一个系统由 CPU.ALU(算术逻辑单元).PC(程序计数器).总线(贯穿整个系 ...
- 面试:一文搞懂堆和栈的区别
前言 在了解堆和栈之前,我们得了解JVM内存的划分,要了解JVM内存我们得先来聊聊Java程序的执行过程,Java程序在运行时都要开辟空间,Java程序的运行离不开JVM(Java虚拟机),好像鱼儿离 ...
最新文章
- jmeter 做ip欺骗遇到的坑
- poj Going from u to v or from v to u? 强联通缩点+拓扑排序(或搜索)
- [Leetcode]141. Linked List Cycle
- 将txt文件转换成xlsx文件及用matlab读取xlsx
- GMT时间转换为当地时间的方法
- uniapp 解决切换横竖屏后内容错乱的问题
- 复习用vue写tabbar
- Python爬虫初学(3)登陆武汉理工大学教务处
- 个人最喜爱产品分析:大众点评app
- 介绍一个可以把安卓手机屏幕投影到电脑上的办法
- CSS3实现骗人版无缝轮播图
- 孟:解密获取网站访客QQ号码的方法及原理
- KeyTweak(笔记本键盘设置工具) V2.20 中文版
- 中国生物降解塑料行业“十四五”发展规划及未来前景展望报告2021年版
- Arduino宿舍门禁,实现刷卡(NFC)开门
- 标志寄存器的状态标志
- mysql建库、建表命令、sql语句大全
- 信用卡收单业务--银行业务(七)
- java毕业设计智能推荐的医药知识推广平台统Mybatis+系统+数据库+调试部署
- 面向未来的陆海空天融合通信网络架构
热门文章
- ACP slave interface 学习
- Linux中设置开机启动执行命令和普通用户配置环境变量开机启动生效
- python 拆分excel工作表_Python合并拆分excel
- sqlserverSMSS登录 18456 错误
- windows C++生成二维码图片
- pytorch 复现 FCN模型详细代码教程
- Azure媒体服务的Apple FairPlay流功能正式上线
- 大型API网关(六)—— 监控和预警
- B-样条基函数:重要性质
- MATLAB-Simulink中BusCreator/Selector 和 Mux/Demux有什么区别?