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

[求助]一个比较基础的问题,在VC6.0下打印结果有点意外,大家来看看

hzdz 发布于 2007-07-21 00:08, 729 次点击
int i=11;

while(i--)

{
cout<<i<<" ";
}

大家说这里会把0打出来吗?

先说下结果,在VC6下面有0,我有点不理解
8 回复
#2
野比2007-07-21 00:16

当i=1时,
判断(i--)是否为0, 这时i=1 所以进入while执行
判断完后--, 所以i=0
进入while后, cout, 此时i已经i=0 了, 所以打印出0来.

这个0是肯定会被打印的...

#3
hzdz2007-07-26 13:54

最近生点小病,有几天没上网

谢楼上版主回复

但是:while(statement){}

对于这个循环,应该是先判断statement的状态吧?我这里"i--"是一个表达式,那它先就应该计算这个表达式的值啊,计算发现此式为0,我的理解是就不应该进入循环了,虽然通过编译发现我的理解肯定为错,还是有点不太明白,这里错在哪?

如果换成--i是不是就不会打印了?我先试试

#4
hzdz2007-07-26 13:55
明白了,惭愧,谢谢版主
#5
virusswb2007-07-26 14:55
可是你的表达式的返回植是i
之后当然i要--
#6
肖中维2007-07-26 15:07
#7
野比2007-07-26 19:23

i--是先返回i, 再--
这就是后缀自加减。。。

#8
hzdz2007-07-26 22:03
呵呵,谢谢各位,当时蒙了,今天一看就明白
#9
xtxk2007-07-30 22:04

看不懂,就多问一下

1