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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张峰 黑马帝   /  2011-10-25 12:44  /  2030 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张峰 于 2011-11-30 13:16 编辑

这是我在做题目中无意发现的一个小知识点,分享给新手的我们吧,高手也可以光顾一下 呵:
关于 i++ 和++i的区别,如下列:
int i=1;
count=(i++)+(i++)+(i++);
  System.out.println(i);
  System.out.println(count);

  int j=1;
  count=(++j)+(++j)+(++j);
  System.out.println(j);
  System.out.println(count);


i++和++i都是对i进行+1的操作,不同的是i++是在i值被使用后才+1而++i是i值在被使用之前就+1


如上题目:i=1     count  里面的第一个i++ 应该是1 然后执行+1操作,i 变成2 ...所以就是 (1)+(2)+(3),结果:i=4,count=6

而下面的++j,  count里面的第一个++j 应该是j+1执行后的结果,j=2....所以就是 (2)+(3)+(4),结果:j=4,count=9


2 个回复

倒序浏览
黄健 黑马帝 2011-10-25 23:30:58
沙发
i++ 和 ++j 操作后的结果都是一样的(即都是加1),只是在返回值时有区别,i++ 返回 i , ++j 返回 j+1
上面的题目可改为
int i=1;
int i1=i++;
int i2=i++;
int i3=i++;

count=i1+i2+i3;
System.out.println(i1);//结果是1
System.out.println(i2);//结果是2
System.out.println(i3);//结果是3

  System.out.println(i);//结果是4
  System.out.println(count);//结果是6

  int j=1;
  int j1=++j;
  int j2=++j;
  int j3=++j;

  count=j1+j2+j3;
System.out.println(j1);//结果是2
System.out.println(j2);//结果是3
System.out.println(j3);//结果是4

  System.out.println(j);//结果是4
  System.out.println(count);//结果是9
回复 使用道具 举报
黄健 黑马帝 2011-10-25 23:49:59
藤椅
i++ 是先返回 i(此时i还未加1) 再把i+1,++i 是先把 i 加1,然后返回 i(此时i已加1)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马