黑马程序员技术交流社区

标题: 关于++i和i++的区别没事的点进来看一定有用的 [打印本页]

作者: hxl8945    时间: 2015-10-9 22:28
标题: 关于++i和i++的区别没事的点进来看一定有用的
昨天考试,有道题目是关于 ++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了 。


作者: JYcainiao    时间: 2015-10-9 22:33
b=i++  应该这样解释,  先把i的值赋给b  然后i进行自增运算

如果你那样理解的话 int x=1;  x=x++;x=x++;x=x++;  最后X值为多少呢?
作者: 迷茫不堪的年纪    时间: 2015-10-9 22:37
其实你可以这样理解。 x++ 废话 ,还是原值。   ++x   理解成x+1就可以。   您应该刚学, 这个知识点模糊是正常的、
作者: hxl8945    时间: 2015-10-9 22:51
JYcainiao 发表于 2015-10-9 22:33
b=i++  应该这样解释,  先把i的值赋给b  然后i进行自增运算

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

这样的话 x值每次都被重新赋值了 每次都是没有+1的值即原来x的值 所以还是1
作者: hxl8945    时间: 2015-10-9 22:52
JYcainiao 发表于 2015-10-9 22:33
b=i++  应该这样解释,  先把i的值赋给b  然后i进行自增运算

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

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

x++不是废话 下次用x的时候就是+1了啊 比如 b = x++后 你打印b的值是x的原值 打印x的值是+1了的
作者: 情深不及久伴    时间: 2015-10-9 23:00
6666666666666666666666
作者: 删''情    时间: 2015-10-9 23:02
我爱黑马!!!!!!!!!!
作者: 迷茫不堪的年纪    时间: 2015-10-9 23:04
hxl8945 发表于 2015-10-9 22:55
x++不是废话 下次用x的时候就是+1了啊 比如 b = x++后 你打印b的值是x的原值 打印x的值是+1了的 ...

亲, 虽然你说的这个我没考虑他下次运算,我可以理解当前这样说肯定是没错的, 同时可以说是先算,后算,++的后算,所以你考虑到下次使用x的是值是+1的话,并没有什么错,因为他不是不算,只是被赋值的时候没被先算而已,
作者: hxl8945    时间: 2015-10-10 21:49
----嗖嘎
作者: Sniper-L    时间: 2015-10-10 23:03
这个点确实很容易混啊
作者: 090110200038    时间: 2015-10-13 17:26
我也是看了好几遍才记住的!
作者: Jared    时间: 2015-10-13 17:45
++i的++在前面就是先加再赋值,在后面是后加
作者: hxl8945    时间: 2015-10-13 22:10
Jared 发表于 2015-10-13 17:45
++i的++在前面就是先加再赋值,在后面是后加

!-----!!!!!!!!!!!!
作者: 看海的管家    时间: 2015-10-13 22:17
这个知识点我确实比较头晕
作者: hxl8945    时间: 2015-10-13 22:27
看海的管家 发表于 2015-10-13 22:17
这个知识点我确实比较头晕

记住规律也可以的,
作者: dai2686779    时间: 2015-10-13 22:32
。。。。。。。。。。。。。。。。。。。




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