for 循环中的i++ 和 ++i有什么区别?

jwbecalm 2005-09-05 08:41:37
自己试了一下,感觉没什么区别?
public class For{
public static void main(String[] args){
for(int i = 0;i < 10; i++){
System.out.println(i);
}
System.out.println("--------------------");
for(int i = 0;i < 10; ++i){
System.out.println(i);
}
System.out.println("==================");
}
}

输出结果都一样,到底有区别不?
...全文
6618 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
27257674 2005-09-06
  • 打赏
  • 举报
回复
在运算结果上
单独使用 ++i,或i++其结果是一样的
但在算术表达式中,就不一样了...
MZDu 2005-09-06
  • 打赏
  • 举报
回复
简单点说, ++i与i++的区别是:
++i是先执行 i=i+1在使用i的值
而i++是先使用i的值再执行i=i+1。

例如:i的原值是5,则
对于 j=++i,j的值为6;
对于 j=i++,j的值为5,然后j的值变为6。

homesos 2005-09-06
  • 打赏
  • 举报
回复
回复人: lancelobb(兰斯洛特) ( ) 信誉:100 2005-09-06 09:01:00 得分: 0


只要不和赋值语句连在一起,的确是没有区别


-----------------------------------------------------------------------------------
错!!!
那for(int i=0; i<10; i++) 与 for(int i=0; i<10; ++i) 是一样的吗???
都说了,++i与i++的内存开销不同!!!
执行次数越多,效果越明显。
cyxlsm 2005-09-06
  • 打赏
  • 举报
回复
两个短缩算术运算符为++和--。
++把它的值自增1,--把它的值自减1。这两个运算符既可以出现在操作数之前(前缀),也可以出现在操作数之后(后缀)。前缀++i是先自增1然后将其赋值(自增在前赋值在后;若i=5 ++i i即为6),后缀i++是先赋值再进行自增1运算(赋值在前,自增在后;若i=5 i++ i即为5,然后i为6),--亦然。
jwbecalm 2005-09-06
  • 打赏
  • 举报
回复
谢谢个位的回答,i++和++i在赋值等操作中的用法我是清楚的,就是个位说的:
i++:先引用后增加
++i:先增加后引用

问问题时忘了说清楚了,不好意思。
只是在复习SCJP时,突然一题中的for循环是以++i来增量的,以为有什么区别,但自己试了下,又试一样的,所以想和大家讨论下。

while循环中试了一下,也是一样的。
saiche05 2005-09-06
  • 打赏
  • 举报
回复
i++:先引用后增加
++i:先增加后引用
在for循环中是一样的
但很多地方是不一样的,比如:
int j;
int m;
j=++i;
m=i++;
一个是先引用后自加.一个先自加再引用。
sunxutx 2005-09-06
  • 打赏
  • 举报
回复
建议这种问题自己多找几个例子试一下
就很清楚了。。。
Ryo_Hazuki 2005-09-06
  • 打赏
  • 举报
回复
而且似乎
for (int i = n; i > 0;) {
System.out.println(--i);
}

for (int i = 0; i < n;) {
System.out.println(++i);
}
实惠一些,因为跟0比较比跟非0数比较快好象
flysky1946 2005-09-06
  • 打赏
  • 举报
回复
一个是先引用后自加.一个先自加再引用
scorpionyjg 2005-09-06
  • 打赏
  • 举报
回复
up! 都说完了...
wtobias 2005-09-06
  • 打赏
  • 举报
回复
lancelobb 2005-09-06
  • 打赏
  • 举报
回复
只要不和赋值语句连在一起,的确是没有区别
homesos 2005-09-06
  • 打赏
  • 举报
回复 1
int operator ++ ()//前置操作符
{
return i+1;
}

int operator ++ (int flag)//后置操作符
{
int j = i;
i += 1;
return j;
}


在for循环中使用++i要比使用i++,成本低

其它的区别,楼上的兄弟们都说过了
appurple 2005-09-06
  • 打赏
  • 举报
回复
int i = 0;
System.out.println(i);
System.out.println(i++);
System.out.println(i);
System.out.println(++i);

不就看出来了吗
rubygmm 2005-09-06
  • 打赏
  • 举报
回复
i++:先引用后增加
++i:先增加后引用
在for循环中是一样的
但很多地方是不一样的,比如:
int j;
int m;
j=++i;
m=i++;
这时m与j的值是不一样的
Ngufer 2005-09-05
  • 打赏
  • 举报
回复
各位说的都很好,我没什么补充的了
qyflaoda 2005-09-05
  • 打赏
  • 举报
回复
for 循环中的i++ 和 ++i,对计算 结果没有区别
nigle_2000 2005-09-05
  • 打赏
  • 举报
回复
i++就是在用之后再给i加1,而++i就是先自加1再用变量i,其实不光是java里面,很多语言里面都是一样的
simon0512 2005-09-05
  • 打赏
  • 举报
回复
i++:先引用后增加
++i:先增加后引用
raul_177 2005-09-05
  • 打赏
  • 举报
回复
同意chinatelly(atelly)
加载更多回复(4)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧