专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

for循环中的条件也能执行计算吗

发布时间:2011-06-28 12:19:55 文章来源:www.iduyao.cn 采编人员:星星草
for循环中的条件也会执行计算吗?
      int main()
       {
                int x=5;
                   for(  ;x>0;x--)
                    {
                          x--;
                          printf("%d  ",x);
                 }

        printf("\n");

return 0;

}

运行的结果是:4 2 0;  不明白为什么这样结果,按照之前学的理解是应该是:4 3 2 1;难道在执行循环的时候,循环条件(  ; x>0;x--)中的x--也会先运行一遍,导致第2次循环的时候进入到{ x--,printf("%d",x)} 中时,x已经其实是3了,然后执行x--,打印出来2 ? 
          不知道我这样理解对不对,请高手指教!
c

------解决方案--------------------
引用:
Quote: 引用:

for(  ;x>0;x--)//这里每次循环后都自减了
                    {
                          x--;//这里就不必自减了
...
为啥大括号里面的x--不需要自减呢?
for里边的x--在每次执行完大括号的语句后会自动执行一次,所以你如果想以此输出4 3 2 1,那大括号里就不要再自减了。假如你的自减需要在某种情况下执行那么可以放在大括号最后一条来执行,这样比放在for里边灵活一些,反之放在for里边比较简便
------解决方案--------------------
for(表达式1;表达式2;表达式3)  执行的顺序是:表达式1--表达式2--for内的语句--表达式3
所以大括号内的和表达式里的都要执行。
------解决方案--------------------

#include <stdio.h>

int main()
{
int x=5;
for(  ;x>0;)//你的写法就等价于这样。。
{
x--;//所以这句是不必要的。。
printf("%d  ",x);
x--;//循环条件中的x--可以看作在循环的结尾执行
}
printf("\n");

return 0;
}

------解决方案--------------------
      int main()
       {
                int x=5;
                   for(  ;x>0;x--)
                    {
                          x--;
                          printf("%d  ",x);
                    }
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: