a++到底做了什么操作

a++是一组操作,它的过程是这样的(假设此时a的值为10):

  1. 获取到a的值,也就是10。
  2. 进行计算,也就是把获取到的值加一,得到计算后的结果,也就是11
  3. 把计算后的结果重新赋值给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组操作。

  1. 第一组操作(++a):先执行一组操作,返回计算后的结果。计算前a=10,计算后a=11。此时a为11,返回值为11。
  2. 第二组操作(a++):先执行一组操作,返回计算前的结果。计算前a=11,计算后a=12。此时a为12,返回值为11。
  3. 第三组操作(++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的区别相关推荐

  1. 一篇搞懂OOA/OOD/OOP的区别

    文章目录 OOA OOD OOP 总结 相关文章: 一篇搞懂OOA/OOD/OOP的区别 面向对象的基本原则-抽象,封装,继承,分解 GRASP模式概述 面向对象的六大原则 OOA什么鬼,OOD又是什 ...

  2. 彻底搞懂BLDC与PMSM的区别

    彻底搞懂BLDC与PMSM的区别 从结构上看 从控制上看 从应用上看 BLDC,直流无刷电机,也可以叫电子换向直流电机,反电势为梯形波,定子电流为矩形波,一般定子为集中整距绕组. PMSM,永磁同步电 ...

  3. 一文带你彻底搞懂i++和++i的区别,谁的效率更高?

    作者简介:Codebowl靓仔,学妹的工具人,C++开发误入数据开发,梦想30岁退休的靓仔就是我啦. i++和++i对于初学者来说,一直是一个特别容易搞混的内容,相信很多人现在也没有完全搞清(作者初学 ...

  4. 多图 | 搞懂volatile和synchronized的区别

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「日拱一兵」 之前写了几篇 Java并发 ...

  5. 3分钟搞懂前后端开发的区别

    上周末见了好多开发的年轻朋友,问了我一个问题:"前后端的区别和要求是什么?"分不清前后端开发的区别和要求,一种是因为前后端都了解,号称"全栈工程师",但又什么都 ...

  6. tcp udp区别优缺点_一文搞懂TCP与UDP的区别

    一.TCP协议: 位于传输层, 提供可靠的字节流服务.所谓的字节流服务(Byte Stream Service) 是指, 为了方便传输, 将大块数据分割成以报文段(segment) 为单位的数据包进行 ...

  7. udp 使用connect优点_一文搞懂TCP和UDP的区别

    TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇.TCP/IP协议集包括了超 ...

  8. jmeter进程和线程的区别_一文搞懂进程和线程的区别

    计算机系统是由硬件和软件组成的,它们共同协作以运行应用程序.先来看下面这张一个典型的计算机系统的硬件组成图 从上图中看出一个系统由 CPU.ALU(算术逻辑单元).PC(程序计数器).总线(贯穿整个系 ...

  9. 面试:一文搞懂堆和栈的区别

    前言 在了解堆和栈之前,我们得了解JVM内存的划分,要了解JVM内存我们得先来聊聊Java程序的执行过程,Java程序在运行时都要开辟空间,Java程序的运行离不开JVM(Java虚拟机),好像鱼儿离 ...

最新文章

  1. jmeter 做ip欺骗遇到的坑
  2. poj Going from u to v or from v to u? 强联通缩点+拓扑排序(或搜索)
  3. [Leetcode]141. Linked List Cycle
  4. 将txt文件转换成xlsx文件及用matlab读取xlsx
  5. GMT时间转换为当地时间的方法
  6. uniapp 解决切换横竖屏后内容错乱的问题
  7. 复习用vue写tabbar
  8. Python爬虫初学(3)登陆武汉理工大学教务处
  9. 个人最喜爱产品分析:大众点评app
  10. 介绍一个可以把安卓手机屏幕投影到电脑上的办法
  11. CSS3实现骗人版无缝轮播图
  12. 孟:解密获取网站访客QQ号码的方法及原理
  13. KeyTweak(笔记本键盘设置工具) V2.20 中文版
  14. 中国生物降解塑料行业“十四五”发展规划及未来前景展望报告2021年版
  15. Arduino宿舍门禁,实现刷卡(NFC)开门
  16. 标志寄存器的状态标志
  17. mysql建库、建表命令、sql语句大全
  18. 信用卡收单业务--银行业务(七)
  19. java毕业设计智能推荐的医药知识推广平台统Mybatis+系统+数据库+调试部署
  20. 面向未来的陆海空天融合通信网络架构

热门文章

  1. ACP slave interface 学习
  2. Linux中设置开机启动执行命令和普通用户配置环境变量开机启动生效
  3. python 拆分excel工作表_Python合并拆分excel
  4. sqlserverSMSS登录 18456 错误
  5. windows C++生成二维码图片
  6. pytorch 复现 FCN模型详细代码教程
  7. Azure媒体服务的Apple FairPlay流功能正式上线
  8. 大型API网关(六)—— 监控和预警
  9. B-样条基函数:重要性质
  10. MATLAB-Simulink中BusCreator/Selector 和 Mux/Demux有什么区别?