for语句执行顺序

for(表达式1;表达式2;表达式3)

    {循环体}

 

第一步,先对表达式1赋初值;

第二步,判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,然后进入第二次循环。若判断表达式2的值为假,就终止for循环,执行循环体外语句。

 

 

下面先看一段简单的代码。

 

#include <stdio.h>

 

int main()

{

    int x, a;

   

    for (x=0,a=0; a<=1 && !x++; a++)

    {

        a++;

    }

   

    printf("%d", a);

    return 0;

}

 

代码很简单,可是打印结果呢?

有的朋友可能会想当然的认为,  打印结果是1.

 

可是,真的是1吗?   复制到编译器上跑跑,奇迹般的发现,其实是2.

 

下面就分析下这简单代码。

 

 

 

第一步:初始化定义,x = 0, a = 0;

 

第二步:a小于1, x 的非为1,符合循环条件

 

第三步:x++后x自增为1.

 

第四步:进入循环体,a++,a自增为1.

 

第五步:执行循环语句头中的a++,a自增为2.

 

第六步:执行循环语句头的判读条件,a=2>1,故不满足,不执行循环语句。

 

第七步:打印a的值为2.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值