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

自己试了一下,感觉没什么区别?
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("==================");
}
}

输出结果都一样,到底有区别不?

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

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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ok060

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值