A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

昨天考试,有道题目是关于 ++i和i++ 的,突然发现自己有点搞不清楚了特意来写个帖子
题目是 public static void main(String[] args){
              int a = 1;
              if(a++>1){
                     System.out.println(a);
              }else{
                     System.out.println(a);
              }
       }
运行为2;
后来我自己写了下 看下区别
public static void main(String[] args){
        int a = 1;
        int b = a++;

        System.out.println(b);
}
我以为结果为2 但是却为1让我大吃一惊,这是为什么呢,
我查资料后自己的结论:当++在前面时即为++i就是先i的值先加1,如果在后面即为i++则i值还是原来的没有变
举个例子inti=1;  int b = i++; 这样的话 b的值是i原来的值为1, 当下次调用i时i才会加1,  如果这样int i =1;  i++;b=i 此时b就是2;
下面看++i这个最简单的 就是i的值加1了 。

16 个回复

倒序浏览
b=i++  应该这样解释,  先把i的值赋给b  然后i进行自增运算

如果你那样理解的话 int x=1;  x=x++;x=x++;x=x++;  最后X值为多少呢?
回复 使用道具 举报 0 1
其实你可以这样理解。 x++ 废话 ,还是原值。   ++x   理解成x+1就可以。   您应该刚学, 这个知识点模糊是正常的、
回复 使用道具 举报
JYcainiao 发表于 2015-10-9 22:33
b=i++  应该这样解释,  先把i的值赋给b  然后i进行自增运算

如果你那样理解的话 int x=1;  x=x++;x=x++ ...

这样的话 x值每次都被重新赋值了 每次都是没有+1的值即原来x的值 所以还是1
回复 使用道具 举报
JYcainiao 发表于 2015-10-9 22:33
b=i++  应该这样解释,  先把i的值赋给b  然后i进行自增运算

如果你那样理解的话 int x=1;  x=x++;x=x++ ...

这样的话x的值每次都重新赋值了 每次都是x原来的值 因为x=x++ 就是x=x
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-10-9 22:37
其实你可以这样理解。 x++ 废话 ,还是原值。   ++x   理解成x+1就可以。   您应该刚学, 这个知识点模糊是 ...

x++不是废话 下次用x的时候就是+1了啊 比如 b = x++后 你打印b的值是x的原值 打印x的值是+1了的
回复 使用道具 举报
6666666666666666666666
回复 使用道具 举报
我爱黑马!!!!!!!!!!
回复 使用道具 举报
hxl8945 发表于 2015-10-9 22:55
x++不是废话 下次用x的时候就是+1了啊 比如 b = x++后 你打印b的值是x的原值 打印x的值是+1了的 ...

亲, 虽然你说的这个我没考虑他下次运算,我可以理解当前这样说肯定是没错的, 同时可以说是先算,后算,++的后算,所以你考虑到下次使用x的是值是+1的话,并没有什么错,因为他不是不算,只是被赋值的时候没被先算而已,
回复 使用道具 举报
----嗖嘎
回复 使用道具 举报
这个点确实很容易混啊
回复 使用道具 举报
我也是看了好几遍才记住的!
回复 使用道具 举报
Jared 中级黑马 2015-10-13 17:45:32
13#
++i的++在前面就是先加再赋值,在后面是后加
回复 使用道具 举报
Jared 发表于 2015-10-13 17:45
++i的++在前面就是先加再赋值,在后面是后加

!-----!!!!!!!!!!!!
回复 使用道具 举报
这个知识点我确实比较头晕
回复 使用道具 举报
看海的管家 发表于 2015-10-13 22:17
这个知识点我确实比较头晕

记住规律也可以的,
回复 使用道具 举报
。。。。。。。。。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马