黑马程序员技术交流社区

标题: 对自增自减运算符的一个疑惑 [打印本页]

作者: 严露华    时间: 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
我给你一个解决问题的建议:
首先要明白:
前缀++(--):先做自加(减),在参与运算  
后缀++(--):先赋值做运算,在自加(减)
你再把这句代码放到程序中把代格式化一下你就会明白了
  1. public static void main(String[] args) {
  2.                 int i = 8;
  3.                 i += ++i - i--;
  4.                 System.out.println(i);
  5.         }
  6. }
复制代码
希望这个方法能够帮到你




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2