java中a++和++a在较复杂的运算中分析
关于连加和连减:http://blog.csdn.net/ieayoio/article/details/46431843
以下是一段普遍都了解的代码:
public static void main(String[] args) {
int a=3;
System.out.println(a++ +1);//4
System.out.println(a);//4
System.out.println(++a +1);//6
}
a++是先计算再++。而++a相反
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWVheW9pbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="a++ + ++a">
事实上准确的说事实上是在每一步上使用我们上面说到的规则,这里a++ + ++a等于8。是由于3+5等于8,第一次遇到a++时a的值为3,可是运行玩之后值就变为了4,又经过了++a的运算就变成了5
但是在看以下的一段程序:
由于加好中间有了空格,被理解为了连加,所以如今是3+4等于7
假设上面的理解了,以下一段代码就十分easy:
事实上就是4+5=9,由于是++a。所以会先++,等到运算到第二个++a时。a已经是4了,所以答案是9
再看一个比較复杂的样例:
以下是分析:
总结:所以根本还是掌握a++是先參与计算再++,++a是先++再參与计算,仅仅是a的值的变化不是一个公式做完才变化。而是每一步计算之后都有可能变化
由此可见++运算參与到普通的运算里可读性就会变的非常差,另外,由于连加的影响。可能一不小心就全然是令一个结果,所以尽量还是不要让++运算參与到太复杂的运算中,全然能够选择替他替代的方式
java中a++和++a在较复杂的运算中分析的更多相关文章
- java中文乱码解决之道(六)-----javaWeb中的编码解码
在上篇博客中LZ介绍了前面两种场景(IO.内存)中的java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的.对于我们从事java开发的人而言, ...
- 关于Java运算中类型自动提升的问题
1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = ...
- 深入理解为什么Java中方法内定义的内部类可以访问方法中的局部变量
好文转载:http://blog.csdn.net/zhangjg_blog/article/details/19996629 开篇 在我的上一篇博客 深入理解Java中为什么内部类可以访问外部类的成 ...
- java中文乱码解决之道(六)—–javaWeb中的编码解码
在上篇博客中LZ介绍了前面两种场景(IO.内存)中的java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的.对于我们从事java开发的人而言, ...
- java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing
java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...
- Java 与 C++ 不一样的地方(持续更新中...)
本文仅以记录 Java 与 C++ 不同之处,以备随时查询. Java 程序运行机制 Java 是一门编译解释型的语言,即它在运行的过程中既需要编译也需要解释.如下图表示的是 Java 程序运行机制: ...
- 【Java】 剑指offer(53-1) 数字在排序数组中出现的次数
正文 本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 统计一个数字在排序数组中出现的次数.例如输入排序数组{1, ...
- java使用elasticsearch进行模糊查询之must使用-项目中实际使用
java使用elasticsearch进行多个条件模糊查询 文章说明: 1.本篇文章,本人会从java连接elasticsearch到查询结果生成并映射到具体实体类(涵盖分页功能) 2.代码背景:el ...
- 我不是学Java的!我不是学Java的!我不是学Java的!。。。。【自我催眠中】
我不是学Java的!我不是学Java的!我不是学Java的!....[自我催眠中]
随机推荐
- php简单实用的调试工具类
<?php /* * 调试类 */ class Common_Debug { //打开错误报告 public static function showError($debug = true) { ...
- 【转】c++数组初始化
数组初始化列表中的元素个数小于指定的数组长度时,不足的元素补以默认值. 原文:C/C++数组初始化的一些误区 以前我这样初始化一个数组,并自我感觉良好: ] = { }; // 全部初始化为0 这种简 ...
- vue工厂化完整项目目录
- javascript中常见undefined与defined的区别
在JavaScript中相信“undefined”与“defined”对大家来说都肯定不陌生,但是又不是很清楚它们的区别,先看两个demo我们再说, 例1. console.log(parms); / ...
- 大项目之网上书城(九)——订单Demo
目录 大项目之网上书城(九)--订单Demo 主要改动 1.OrderServiceImpl 代码 2.OrderDaoImpl 代码 3.OrderitemDaoImpl 代码 4.orderite ...
- 【笔记】搭建OpenWrt编译环境
参考书目<B智能路由开发指南> 目标:搭建一个OpenWrt编译环境,可以同时在家里和公司使用. [2018-09-13] 刚开始想用自己的电脑共享远程桌面,但不知道什么原因搞不定,所以干 ...
- buf.toString()
buf.toString([encoding[, start[, end]]]) encoding {String} 默认:'utf8' start {Number} 默认:0 end {Number ...
- 第十一节:pandas统计函数
1.pct_change()计算增长比例 2.cov()协方差 3.corr()相关系数 4.rank()数据排名 5.numpy聚合函数
- Error: Divergence detected in AMG solver: k
** Error: Divergence detected in AMG solver: k A:Since you were working on convergence issue from pa ...
- 关于Google浏览器Unable to preventDefault inside passive event listener due to target being treated as passive.的解决方案
最近写react项目的时候,引用了antd-mobile,在使用滚动组件的时候,发现谷歌浏览器会报以下警告 最初我以为是antd-mobile的问题导致的,然后我就无查看了之前的vue的项目,发现了类 ...