黑马程序员技术交流社区
标题:
i++和++i区别到底在哪里呢???
[打印本页]
作者:
fenzheng
时间:
2014-4-4 17:10
标题:
i++和++i区别到底在哪里呢???
本帖最后由 梦里花-静 于 2014-4-6 16:00 编辑
i++和++i区别到底在哪里呢???
作者:
_Water
时间:
2014-4-4 18:20
1、++i 的用法(以 a=++i ,i=2 为例)
先将 i 值加 1 (也就是 i=i+1 ),然后赋给变量 a (也就是 a=i ),
则最终 a 值等于 3 , i 值等于 3 。
所以 a=++i 相当于 i=i+1 ,a=i
2、i++ 的用法(以 a=i++ ,i=2 为例)
先将 i 值赋给变量 a (也就是 a=i ),然后 i 值加 1 (也就是 i=i+1 ),
则最终 a 值等于 2 ,i 值等于 3 。
所以 a=i++ 相当于 a=i , i=i+1
3、++i 与 i++
a=++i 相当于 i++ , a=i
a=i++ 相当于 a=i , i++
4、++i 与 i++ 单独使用时,相当于 i=i+1
如果赋给一个新变量,则 ++i 先将 i 值加 1 ,而 i++ 先将 i 赋给新变量。
复制代码
作者:
fenzheng
时间:
2014-4-4 19:14
谢谢,还是不太明白,死记硬背先背下来吧
作者:
紫^瞳
时间:
2014-4-4 20:37
如果只是单独一个语句的话,是一样的效果,就是i=i+1。如果一个语句里面有多个运算的话,++i是先自增1后再参与运算; i++是参与运算后再加1
作者:
shi0000
时间:
2014-4-4 21:42
给你看两行代码,就很明显了,就是因为我们不经常用。如下:public class laoshihenger {
public static void main(String[] args) {
int i=1;
int b=i++*2;//这里i++是先运算再自加,即b=1*2;运算后i=i+1
System.out.println(b+" "+i);//这里输出b=2,i=2;
int c=++i*2;//这里先自加,即先i=i+1=3在运算c=3*2;
System.out.println(c+" "+i);//输出c=6,i=3;
}
}
作者:
四川男人
时间:
2014-4-4 22:37
是一个单目运算符。
i++的使用是先赋值,再自加。即先把变量i的值赋给指定变量或作为参数传给方法,然后执行i+=1;
++i的使用是先自加,再赋值。先执行i+=1,再将i的值赋给指定变量或作为参数传给方法;
作者:
曲佳奇
时间:
2014-4-5 20:58
楼上说的都对... 不过我自己理解的话 优先级 ++,--(前缀) 大于 +,-,*,/,= 大于 ++,--(后缀)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2