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.