看下这个简单的C源程序

来源:百度知道 编辑:UC知道 时间:2024/06/27 16:13:19
请达人看看下面的程序,为什么两种的结果不一样?(我知道答案结构不同的原因,请说明为什么A结果是200,B结果是300而且好像没运行完的原因.谢谢)

//A写法
main()
{
int money;
for (money=700; money>200;money-=100)
{
cout<<"Pay bill";
}
cout<<"Money left is:"<<money<<"\n";
}

//B写法
main()
{
int money;
for (money=700; money>200;money-=100)
{
cout<<"Pay bill";
cout<<"Money left is:"<<money<<"\n";
}
}
可是不管A还是B条件变化是一样的啊,为什么A结果200,而B到300就不继续了呢??

因为B中的语句cout<<"Money left is:"<<money<<"\n";
在for语句中,A的不是。
而for 语句是第二句条件语句是否为真来执行下面的语句。

for里面money=700是初时的值,money>200是循环的条件,money-=100是执行完for循环后执行的语句。所以A里面是在执行完for循环后,money减了100,再执行cout<<"Money left is:"<<money<<"\n";
而B里面是在for的执行过程中,在执行完cout<<"Money left is:"<<money<<"\n"; 后才减100的

晕了,这个问题~~~把c语言课本再看几遍吧