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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李泽霖 黑马帝   /  2012-2-6 17:21  /  3931 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

i++与++i有什么区别哪?

评分

参与人数 1技术分 +1 收起 理由
admin + 1 回答问题的人很多,解决了?

查看全部评分

20 个回复

倒序浏览
++i把i的值加1,再使用i。
而i++是先使用i,使用完了把i值加1.

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
int i = 1;
System.println(i++); //输出 i为1
System.println(++i); //输出 i为2
i++是先调用i然后再i再自加
++i是i自加完后再调用i

建议有些问题先搜 如果论坛有的话 直接看就可以了

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
map.put(1,"张三");请问怎么样将1,张三这个键值对往map中加4次,
回复 使用道具 举报
int i = 1;
System.out.println(i++);  //输出结果为:1
int x = 1;
System.out.println(++x);//输出结果为:2
由此可得:i++ 先执行输出 后进行自增。
          ++i 先执行自增 后进行输入。

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
关于这种运算符很神奇,当时学习c语言的时候就比较困惑,后来慢慢搞清楚了。
i++和++i,前者首先对把i的值给其他变量然后i+1后者是直接进行运算然后也+1。
然后i--和--i也是同样的情况。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
马欢 黑马帝 2012-2-6 18:07:35
7#
i++和++i乍一看没什么不同,都是i+1.
i++是i运行了其他指令之后i的值加1
++i是i加1后再运行指令
int  i=3;
i++;
System.out.println(i);结果为3
int  i=3;
++i;
System.out.println(i);结果为4

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
java中的++ i和 i++ 和c语言中是一样的

首先你要明确以一点是不管是 ++i 还是 i++,最后结果对于i来说都是一样的,他的值都会加1。
eg:i=5;这两个动作完成后i的值都变成6。

其次 对于他赋值给的那个变量就不一样了。
eg:i=5;
    a = ++i,这句执行完后a = 6,当然i=6;
但是
    a = i++,这句执行完后a = 5,i=6;

看了上面的例子应该明白结果了吧。

理解的话对于a = ++i你可以理解先执行+,再赋值。而对于a = i++,是先执行赋值再+。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黄秋 黑马帝 2012-2-6 18:34:36
9#
张建银 发表于 2012-2-6 17:30
map.put(1,"张三");请问怎么样将1,张三这个键值对往map中加4次,

map的键值不允许重复的,怎么可以往map中加4次呢?重复put 会把之前的冲掉, map.put(1,"张三");map.put(2,"张三");--- 这样才可以。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报

++i把i的值加1,再使用i,是先赋值再运算
而i++是先使用i,使用完了把i值加1.,是先运算,再赋值
回复 使用道具 举报
i++是先使用,后自增。而++i是先则增,后使用!比如:int i=0;j=0;j=i++;那么j就是0,如果是j=++i;j就是1
回复 使用道具 举报
i++ 是先读i在实行+1操作。
++i是先加1然后再度加过后的结果!
回复 使用道具 举报
i++和++i运算以后的结果都是自增一,但是在赋值方面就有区别了,i++会先赋值后自增一,++i自增一以后才会赋值。
回复 使用道具 举报
楼上的已经说的很清楚了,我就不在重复了.说下我的经验:
如果怕忘记,楼主可以强制记忆:
"i++"=i   
"++i"=i+1
回复 使用道具 举报
class VarDemo
          {
                   public static void main(String[] args)
                      {      int x=4720;

                             x=x/1000 * 1000;//输出结果为4000,因为想,1000都为int型,x/1000会强制省去小数点后的,转换为int型的4;

                           System.out.println(x);

                         System.out.println(10%3);

                         System.out.println(-1%5);//输出-1;

                         int a=3;b;

                           b=a++;//先赋值后自增;

                          System.out.println(b);

                          System.out.println(a);//输出结果:3  4;

                         System.out.println(a+","+b);//输出结果为:4,3;

                           b=++a;//先增后赋值

                        //字符串数据和任何数据使用+都是相连接,最终都会变成字符串。

                          System.out.println(“ajajajajaj”+“ksskskskks”);//'+'这个加号为连接符;

                         System.out.println(“5+5=”+5+5);//输出结果为5+5=55;

                          System.out.println("ab"+5+5;)//输出结果为ab55;

                         System.out.println("5+5="+(5+5));//输出结果:5+5=10;

回复 使用道具 举报
本帖最后由 戴振良 于 2012-2-10 00:13 编辑

这个问题很简单,只要记住两点:
1、前加加是先自加1再使用
2、后加加是先使用再自加1
后加加,如:x=1,y=(x++)+5; //因为这里是后 ++,所以是先使用x的值1和5相加后x才开始自加1。而且不管是否有括号( ),都是先使用后自加,所以这里的y=6;  
前加加这里就不解释了,大家都懂的。
       
回复 使用道具 举报
袁野 黑马帝 2012-2-10 15:09:15
17#
i++ 先运算后自己在+1 ++i 先自己加一 在参与运算
回复 使用道具 举报
小白 黑马帝 2012-2-10 17:34:57
18#
i++:先运算再加1
++i:先加1在运算
回复 使用道具 举报
共同点:如果i=1;i++ 和++i 都是对i做了加1的操作。无论你是那种做法,如果最后打印:System.out.println(i);   那么打印结果都是2,因为i加了1。上面好像有同学好像说错了这点。
不同点:i++和++i都是可以给别的变量赋值的。例如inti=1;a=i++和a=++i;a的结果是不一样的。a=i++;a的结果是1,因为i 是先把自己的值赋到了a的身上,然后再执行++的操作。而a=++i;最后的结果是2,因为i是先执行++的操作再把值赋给a的。所以a的值是不一样的!但是i都执行了++的操作,所以i 的值都是一样的。
回复 使用道具 举报
衣服 黑马帝 2012-2-10 18:21:06
20#
后自增 i++ 先用i 的值参与它所在表达式的运算,然后对i 增1
前自增 ++i 先对i 增1,然后在出现i 的表达式中用 i 的新值进行运算
注意:只有变量或者结果为变量的表达式,才可以出现在赋值运算符的左边,对一个表达式而不是一个可赋值的变量使用自增或自减运算符是错误的,如++(x+1)

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马