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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fenzheng 中级黑马   /  2014-4-4 17:10  /  1671 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 梦里花-静 于 2014-4-6 16:00 编辑

i++和++i区别到底在哪里呢???

6 个回复

倒序浏览
  1. 1、++i 的用法(以 a=++i ,i=2 为例)

  2.    先将 i 值加 1 (也就是 i=i+1 ),然后赋给变量 a (也就是 a=i ),

  3.    则最终 a 值等于 3 , i 值等于 3 。

  4.    所以 a=++i 相当于 i=i+1 ,a=i

  5. 2、i++ 的用法(以 a=i++ ,i=2 为例)

  6.    先将 i 值赋给变量 a (也就是 a=i ),然后 i 值加 1 (也就是 i=i+1 ),

  7.    则最终 a 值等于 2 ,i 值等于 3 。

  8.    所以 a=i++ 相当于 a=i , i=i+1

  9. 3、++i 与 i++

  10.    a=++i 相当于 i++ , a=i   

  11.    a=i++ 相当于 a=i , i++

  12. 4、++i 与 i++ 单独使用时,相当于 i=i+1

  13.    如果赋给一个新变量,则 ++i 先将 i 值加 1 ,而 i++ 先将 i 赋给新变量。
复制代码
回复 使用道具 举报
谢谢,还是不太明白,死记硬背先背下来吧
回复 使用道具 举报
如果只是单独一个语句的话,是一样的效果,就是i=i+1。如果一个语句里面有多个运算的话,++i是先自增1后再参与运算; i++是参与运算后再加1
回复 使用道具 举报
给你看两行代码,就很明显了,就是因为我们不经常用。如下: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;
        }

}

回复 使用道具 举报
是一个单目运算符。
i++的使用是先赋值,再自加。即先把变量i的值赋给指定变量或作为参数传给方法,然后执行i+=1;
++i的使用是先自加,再赋值。先执行i+=1,再将i的值赋给指定变量或作为参数传给方法;
回复 使用道具 举报
楼上说的都对... 不过我自己理解的话   优先级 ++,--(前缀) 大于 +,-,*,/,= 大于 ++,--(后缀)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马