注册 登录
编程论坛 C++教室

FOR循环语句问题

cyru008 发布于 2007-09-01 07:23, 3085 次点击
问一下for循环语句,for(i=1;i>100,i++)与for(i=1;i>100,++i)是一样效果么?
43 回复
#2
天使梦魔2007-09-01 09:17

前者100次,后者99次,好象是的。
自加放在后面的意思是先运算I再自加。
我这没工具也不好弄,这个自己试一下就知道了。

#3
blueboy820062007-09-01 09:49
我不知道是不是LZ写错了,i>100,不满足,直接跳出了!
那个逗号应该是分号吧!?

[此贴子已经被作者于2007-9-1 9:50:42编辑过]

#4
天使梦魔2007-09-01 10:01
习惯性出错,没什么好纠正的。自己注意就完了
#5
PcrazyC2007-09-01 10:25
是一样的效果
#6
qkjenjoy2007-09-01 11:46
在这里 效果是一样的
#7
qwl19822007-09-04 01:28
因为在这里只有单独的表达式++i;或者i++;全部运算只有i自身加1而已,所以先加后加效果都一样,全部是循环99次。
#8
绝种好小伙2007-09-04 10:04

i++ 先赋值,在自增;
++i 先自增,在赋值。

#9
yrlq19842007-09-04 10:54
这个不就是i++和++i不同区别的啊,前者是先运算再+1,后者是先+1再运算的吧?我是新手只是参与下,呵呵,大家别怪我说错话哦!

[此贴子已经被作者于2007-9-4 10:56:49编辑过]


#10
dart2007-09-04 20:59
一样的/....
#11
huozoo2007-09-04 23:11

想说的是,要养成写++i;的习惯。因为前置比后置的效率高。

#12
雨夜微醺2007-09-05 17:31

效果当然是一样的拉  他进行完自加之后才作比较 所以是一样的

#13
lank062007-09-06 14:11
如果要输出循环结束后 i 的值呢.......................
#14
virusswb2007-09-06 14:42
++i和i++是一样吗?
#15
dearbot2007-09-06 17:08
以下是引用绝种好小伙在2007-9-4 10:04:33的发言:

i++ 先赋值,在自增;
++i 先自增,在赋值。

就是这个意思,逻辑上不一样,但都是循环99次。

#16
wangzm072007-09-11 22:15
一样一样的
#17
snakeImao2007-09-11 22:51
for(表达式1;表达式2;表达式3)
循环语句有三个表达式。这里只有两个。是不是错了呢?

[此贴子已经被作者于2007-9-11 22:58:56编辑过]

#18
reedleaf2007-09-12 00:30
The same
#19
valentineyzq2007-09-12 12:16

在单独一条语句里,效果是一样的。也就是说,i++;和++i;是一样的。(注意有分号!)
只有在需要它们返回值的语句里才有楼上所说的区别。

#20
mac1102007-09-13 07:33

在这里应该没有什么区别吧

#21
wsaaa2007-09-17 20:24
效果是相同的。自己理解以下++i与i++的区别。
#22
yuyunliuhen2007-09-17 20:41

在这一样

#23
lqmqj2007-09-17 22:36

++i是先执行i=i+1后再使用i的值,而i++是先使用i的值后,再执行i=i+1.如:
i=3;
cout <<++i;
则输出4.如果改为:
i=3;
cout <<i++;
则输出3

#24
jinchaoren2007-09-18 00:14
以下是引用blueboy82006在2007-9-1 9:49:38的发言:
我不知道是不是LZ写错了,i>100,不满足,直接跳出了!
那个逗号应该是分号吧!?


对啊!楼上的怎么了?

#25
Mrˇ咔ベ2007-09-18 01:59
#26
xbw01142007-09-18 10:30
以下是引用绝种好小伙在2007-9-4 10:04:33的发言:

i++ 先赋值,在自增;
++i 先自增,在赋值。

说的好

#27
weishj2007-09-18 10:49
一样的效果
编译错误
#28
孤魂居士2007-09-18 15:56

其实我们都是新手 我现在才懂一点点
其实学语言多想 主要是想``拼命的想和动手用纸写 再就是上机 这个i++ 和++i 书上讲的也很详细```拼命一想 其实就明白那个意思了 是吧兄弟``嘿嘿``
老师说 i++ 简单点理解就是 +在后面 就是后加 就是先赋值再加
++i 就是+在前面就是先加 再赋值```用心一想 ``嘿嘿```哦懂了`

#29
凉拌粉丝2007-09-19 14:13
一样的,都是99次.因为i++这条语句执行完了才比较i是否小于100,i植已经改变了
#30
caierfeng2007-09-19 16:41

在vc环境下就是一样的 但是按照标准是不一样的 vc都不按标准来的....

#31
ackie2007-09-20 12:00
条件不满足,直接跳出!!

#32
duxinjun1232007-09-20 16:52

同意 qwl1982 的观点

#33
wuyu1233212007-09-21 10:49

副作用 与 顺序点 分号是个顺序点 ,在进下一个循环前要完成前面所有的工作

#34
hange20072007-09-21 13:05

楼主的语句好像写错了啊,还没运行就会跳出循环呀!

#35
govor12007-09-22 19:38
一样的

#36
china25qd2007-09-22 20:54
++i是从0开始的
先+,再生成i,到i = 99的时候就好了,返回的是100
i++是从1开始的
先生成i,再+,到100为止。

另外,LZ是不是把“<”写成“>”了?

#37
风致2007-09-23 00:44
i++和++i是一样的啊,在for(int i=1;i<n;i++(++i))不在这里就不一样啦啊!呵呵
#38
zbug2007-09-23 10:31
我也认为循环的次数是一样的
#39
lishuqiao2007-09-23 14:41
结果是一样的,但过程是不一样的,++i是把i自加1後再進行運算,i++是進行運算後把i自加1
#40
wuhaofei2007-09-23 18:33

很多人都说错了,对于for语句,定义为:
for(initializer;condition;expression)
statement;
楼主的初始化语句写错了,应该是int i=1;

i++和++i在这里结果是一样的,不过前置++效率更高。
补充一下,condition可以为空语句,相当于:
for(initializer;true;expression)
statement;

#41
fwloveu2007-09-26 08:53
一样的,自己try one try;就知道了
#42
chllin2007-09-26 15:44

绝对一样的 都是100次

#43
china25qd2007-09-26 20:18
回复:(chllin)绝对一样的 都是100次
LS,是99次好么?
#44
LOVE__C2007-09-27 22:28
一样的没什么不同的I++ 和++i单用没什么区别的
1