黑马程序员技术交流社区
标题: 关于++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
这样的话 x值每次都被重新赋值了 每次都是没有+1的值即原来x的值 所以还是1
作者: hxl8945 时间: 2015-10-9 22:52
这样的话x的值每次都重新赋值了 每次都是x原来的值 因为x=x++ 就是x=x
作者: hxl8945 时间: 2015-10-9 22:55
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
亲, 虽然你说的这个我没考虑他下次运算,我可以理解当前这样说肯定是没错的, 同时可以说是先算,后算,++的后算,所以你考虑到下次使用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
嗯!-----!!!!!!!!!!!!
作者: 看海的管家 时间: 2015-10-13 22:17
这个知识点我确实比较头晕
作者: hxl8945 时间: 2015-10-13 22:27
记住规律也可以的,
作者: dai2686779 时间: 2015-10-13 22:32
。。。。。。。。。。。。。。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |