为了账号安全,请及时绑定邮箱和手机立即绑定

关于java自增 自减

关于java自增 自减

慕粉3305249 2017-10-04 10:07:17
怎么我算的是4呢,不懂int i = 1; int j = ++i + ++i;  System.out.println(j);
查看完整描述

2 回答

?
爱学习的机器喵

TA贡献10条经验 获得超4个赞

这个是因为你第一次++i的时候,i的值等于2了,所以当再进行++i操作的时候,自然是在i=2的基础上+1,所以结果是5

查看完整回答
1 反对 回复 2017-10-04
?
Developer_Zuck

TA贡献112条经验 获得超42个赞

修正一下刚刚的回答:答案是j=5!
分析过程不变
int i = 1;
int j = ++i + ++i; 
System.out.println(j);
此时i=3,j=5;
如果你换一种写法
int i = 1;
int j = i++ + i++
System.out.println(j);
那么此时i=3,j=3

也就是说++在变量前面,先计让变量+1再进行与其他的表达式进行运算,如果++在后面,那么就是先进行运算后将变量自身+1

(++i)/(i++)都是一个整体,按照前面的分析,如果++/--在前,那么先进行自身的自增或自减,在跟后面的表达式进行运算。若果在后面则先进行运算在对自身进行自增或自减。
你这里进行了两次自增,所以特别注意这一规则。

查看完整回答
反对 回复 2017-10-04
?
Developer_Zuck

TA贡献112条经验 获得超42个赞

首先要肯定一下的是:答案是4!
int i = 1;
int j = ++i + ++i; 
System.out.println(j);
此时i=3,j=4;
如果你换一种写法
int i = 1;
int j = i++ + i++
System.out.println(j);
那么此时i=3,j=2

也就是说++在变量前面,先计让变量+1再进行与其他的表达式进行运算,如果++在后面,那么就是先进行运算后将变量自身+1

查看完整回答
反对 回复 2017-10-04
?
liyanlong

TA贡献2条经验 获得超0个赞

答案是5,

因为:“+“在变量前面意思是:在运算之前就自动加1,在第一个自增后为2,然后去加第二个自增,这时候第二个自增会本身已经接收到了第一个自增后的结果(因为你的两个变量是一个,所以每次会用最新的数据),所以第二个自增后会变3,如果还有第3个,那它在自增前会调用第2个,自增后就会为4。

如果在变量后面例如:int i=1; int j=i++ + i++;则意思是在运算后在自增,所以答案会是2.

自减的写法一样,意思也一样,不同的是自减每次是减1.

查看完整回答
反对 回复 2017-10-04
  • 2 回答
  • 0 关注
  • 2110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信