黑马程序员技术交流社区

标题: i++和++i的区别,谁能说详细点 [打印本页]

作者: 拾起落叶    时间: 2015-7-10 11:08
标题: i++和++i的区别,谁能说详细点
本帖最后由 拾起落叶 于 2015-7-10 11:10 编辑

都是自加1,有没有详细点的讲解!还有就是什么情况下用i++,什么情况下用++i呢?

作者: 野驴少东    时间: 2015-7-10 11:34
这我也没想过,不过应该是看初始值(i)是否需要使用吧
作者: lsunshine    时间: 2015-7-10 14:07
i++; 和++i 都是自增1  .    举个例子吧  a=i++; i的值先给a , 然后i再自增1.而 a=++i;  i 先自增1,然后再把i的值赋给a.总结一句话 ,就是i++;是先操作后自增  .++i ,先自增后操作.希望能帮到你
作者: _真的小迷糊    时间: 2015-7-10 14:16
i++和++i都是把i+1,区别是i++是先使用i,然后再把i的值+1;++i是先把i的值+1,再使用i;
比如:Test1 打印是num=10::i=11;Test2 打印是num=11::i=11

  1. class Test1 {
  2.         public static void main(String[] args) {
  3.                 int i = 10;
  4.                 int num = i++;
  5.                 System.out.println("num=" + num + "::i=" + i);
  6.         }
  7. }
复制代码
  1. class Test2 {
  2.         public static void main(String[] args) {
  3.                 int i = 10;
  4.                 int num = ++i;
  5.                 System.out.println("num=" + num + "::i=" + i);
  6.         }
  7. }
复制代码

作者: 走在冷风中    时间: 2015-7-10 14:35
运算顺序问题,毕老师视频里很贴切实际的解释了,i++先运算后自增.++i是先自增再运算.<br/>楼下你说呢
作者: 心在左边跳    时间: 2015-7-10 15:05
这是最基本的啊。

作者: 何时归来看花开    时间: 2015-7-10 15:22
i++是先赋值后自增,++i是先自增后赋值
作者: Jiwei    时间: 2015-7-10 17:10
_真的小迷糊 发表于 2015-7-10 14:16
i++和++i都是把i+1,区别是i++是先使用i,然后再把i的值+1;++i是先把i的值+1,再使用i;
比如:Test1 打印 ...

回答的不错哦
作者: 未央1216    时间: 2015-7-10 17:15
int a=3,b;

b=a++;     //结果a=4,b=3。a++如果参加表达式运算,要先参与运算,再完成自增动作。

b=++a;//结果是a=4,b=4。++a则是不管有没有运算,先加1,然后参与运算。

int i=3;

i=i++;//结果i=3,相当于temp=i;i=i+1;i=temp,所以i=3.
作者: slaynzane    时间: 2015-7-10 17:33
i++是先运算,再自增;++i是先自增,自增后的值进行运算。
作者: CLTDEZHUCE    时间: 2015-7-10 18:13
i++是先运算,再自增;++i是先自增,再运算。
作者: zhwfa1991    时间: 2015-7-10 18:42
i++和++i都是i的自加1,举个例子可以看他们的区别a=i++是先把i的值赋给a之后,i在自加1
而a=++i是i自加后在把i的值赋给a
你只要把这两者运算过程搞明白就明白什么时候用i++和++i了
作者: 廖博伟    时间: 2015-7-10 18:47
跟着学习
作者: 梦想起航    时间: 2015-7-10 19:19
我是来看回复的
作者: 午夜码农    时间: 2015-7-10 19:24
简单的说,++i是在代码执行前自增,i++是在执行后自增。。
作者: 陈建民1    时间: 2015-7-10 19:30
我也有些搞不懂这个。。。求大神解释
作者: firwood    时间: 2015-7-10 20:40
i在前面就是先用i值,再加一。i在后面就是先加一,再用i值(也就是增加了1的i值)

作者: 孟卫严    时间: 2015-7-10 21:11
我的博客就是将这个的,你可以有空的时候看看,链接是:http://blog.csdn.net/u013446014/article/details/46805461
作者: 为明天而奋斗    时间: 2015-7-10 21:13
++i ,是i先自增再参与运算,i++是先参与运算后再自加
作者: 秀丽xl    时间: 2015-7-10 21:44
i++与++i单独运用的时候,没有区别,都会自增1,当两者参与运算的时候:i++是先参与运算。再自增1,++i是先自增1再参与运算
作者: pathnet    时间: 2015-7-10 22:21
一个是先自增,一个是后自增,单独的情况下没区别,其他情况就有了,尤其是i++ 是不运算过后才自增的
作者: longbao    时间: 2015-7-10 23:09
两者都是自增,单独使用是没有区别,但是在与其他表达式一起参与运算时,就有区别了,i++是i先参与运算,然后i再自增1,而++i是i先自增1,然后再参与运算
作者: 云123    时间: 2015-7-10 23:26
案例a=i++;这个是先赋值在自加;而a=++i是先自加再赋值给a。
作者: 人造番茄    时间: 2015-7-11 07:14
区别在于是否先进行i自增这一步
作者: icichacici    时间: 2015-7-11 08:38
++i先自增然后再使用,i++先使用然后在自增。
作者: fantianfei    时间: 2015-7-11 09:04
我喜欢2楼的回答。
作者: Love丶cd    时间: 2015-7-11 09:49
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
作者: 一问    时间: 2015-7-11 16:01
a:单独使用: 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)                 b:参与运算使用:放在操作数的前面,先自增或者自减,然后再参与运算。 放在操作数的后面,先参与运算,再自增或者自减。
作者: DemoJameson    时间: 2015-7-11 16:31
详细区别楼上已经解释过了,个人意见不要在复杂的表达式中使用 i++ 这种写法,会增加代码的阅读难度。
作者: 强强_U00ts    时间: 2015-7-11 16:36
i++是先赋值后自增,++i是自增后赋值,大家说的都很明白.
作者: 路途    时间: 2015-7-11 16:58
这个东西........
作者: 弥修斯    时间: 2015-7-11 17:14
运算是完全不用管 i++ 的 ++ ,必须要知道本次运算完成后 i+1

作者: e咕噜    时间: 2015-7-11 22:23
I++是先运算在自增,++i是先自增在运算
作者: gongyanfa123    时间: 2015-7-11 22:29
来学习。。。
作者: Miss.H    时间: 2015-7-11 22:34
i++和++i都是把i+1,区别是i++是先使用i,然后再把i的值+1;++i是先把i的值+1,再使用i;反正到最后在用的i都已经自加过了
作者: yongaidongbing    时间: 2015-7-11 23:09
最简单的理解方法,单独用这俩没区别!但是.......当a=i++ 时实际是a←i=(i+1)    后者 a=(i=i+1)
作者: 路宪帅    时间: 2015-7-12 09:04
都加1,一个先加,一个后加的问题
作者: dajiaoya    时间: 2015-7-12 11:08
分享快乐
作者: 易阳    时间: 2015-7-12 15:45
单独用时:i++和++i效果是一样的。如果参与运算时:如a= i++;是先用后加,简单说就是先把i原有的值赋值给a,然后i自增。如:a=++i,是先加后用,简单说就是i先自增,然后把自增后i的值赋值给a;
作者: 炎舞霜冬    时间: 2015-7-12 16:03
只要理解意思了用的时候看情况
作者: dadai5ai    时间: 2015-7-12 16:05
前者是先运算,然后执行自加1; 后者是先执行自加1,然后再执行其他运算。
作者: 妳的微笑    时间: 2015-7-12 16:48
大家说的都很好嘛,想先增加然后使用 i 就用 ++i,反之就用 i++
作者: zhangfurui    时间: 2015-7-12 17:14
i++是先参与运算再自增;++i是先自增再参与运算。一个是先吃饭再回家,一个是先回家再吃饭。
作者: wrnlksblk    时间: 2015-7-12 19:48
我也想知道!!!!!
作者: 逆袭白富美    时间: 2015-7-12 21:00
i++先运算后自增.++i是先自增再运算
作者: 逆袭白富美    时间: 2015-7-12 21:08
i++先运算后自增.++i是先自增再运算
作者: 孟卫严    时间: 2015-7-12 21:12
我的博客就是写的这个问题,你有时间可以看看链接是:
http://blog.csdn.net/u013446014/article/details/46805461
作者: fever_ai_my    时间: 2015-7-12 21:26
前来学习学习
作者: 迷途客    时间: 2015-7-12 22:09
赋值的话 i++ 是先将i赋给目标 ++i是将i+1的赋给目标
作者: 搁浅丶那份    时间: 2015-7-12 22:10
++在前,先++,++在后,后++
作者: 扶摇丶    时间: 2015-7-12 22:14
如果在数据的后边,数据先操作,在++/--;如果在数据的前边,数据先++/--,再操作。

作者: zhang2013lei    时间: 2015-7-12 22:19
单独用的时候功能都一样,但是参与逻辑运算的时候会有区别
作者: 453203489    时间: 2015-7-12 22:29
楼上的都总结好了,  就是运算顺序的问题。
作者: 叫什么    时间: 2015-7-12 22:33
来看看:handshake
作者: 刘丹    时间: 2015-7-12 23:12
i++ 和++i 分为两种情况来考虑:1,单独使用的时候两种情况的结果都是一样的, 2,参与运算就不一样的,加加在前面的是先赋值,再参与运算,例如:int i= 1 ;y=++i 那么此时y=1;i=2;   如果加加在后边的话;int i= 1; y=i++ 那么此时y = 1;i =2;希望楼主能明白。




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