黑马程序员技术交流社区
标题:
对自增自减运算符的一个疑惑
[打印本页]
作者:
严露华
时间:
2013-4-8 23:09
标题:
对自增自减运算符的一个疑惑
列: int i = 8; 执行语句为“i +=++i-i--;i自增后或者自减后是否全部的i都自增自减呢?还是i自增后自减后其它i都不变呢?
作者:
liuyangyang
时间:
2013-4-8 23:19
本帖最后由 liuyangyang 于 2013-4-8 23:20 编辑
你好,
个人理解这样的: 先看"="右边的
:"++i-i--"——> 9-9;
再看"="左边:8+=0; ------>8+0; 结果=8;
++i是先加后做于后面的运算,
i--是i值先不变,运算完再减1,
不是全部的都变,单个去看。
作者:
Keith
时间:
2013-4-8 23:20
当然不是全部自增自检,从左往右挨着分析
作者:
严露华
时间:
2013-4-8 23:29
liuyangyang 发表于 2013-4-8 23:19
你好,
个人理解这样的: 先看"="右边的:"++i-i--"——> 9-9;
再看"="左边:8+=0; --- ...
你好,这要理解是否也对呢?
第一步:运算++i 的i=9
第二步:(++i-i)=0; 这里的第二个i是否也进行了自增呢?
第三步:i-- 得i=8;
第四步:i+=i 得i=8。
作者:
李芳池
时间:
2013-4-8 23:33
int i = 8; 执行语句为“i +=++i-i--,
也就是i=i+(++i)-(i--);
前缀++(--):先做自加(减),在参与运算
后缀++(--):先赋值做运算,在自加(减):
所以i=8+9-9=8.
作者:
李瑞
时间:
2013-4-8 23:38
i+=++i-i--
可以表达为i=i+ ++i-i--
++i为运算中自增1,i--为运算后-1,所以i=8+9-9=8
作者:
yangyinhui
时间:
2013-4-9 00:08
我给你一个解决问题的建议:
首先要明白:
前缀++(--):先做自加(减),在参与运算
后缀++(--):先赋值做运算,在自加(减)
你再把这句代码放到程序中把代格式化一下你就会明白了
public static void main(String[] args) {
int i = 8;
i += ++i - i--;
System.out.println(i);
}
}
复制代码
希望这个方法能够帮到你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2