C语言 一个简单的小程序的结果

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:32:34
#include<stdio.h>

void main()
{

int a=1,b;
for(b=1;b<=10;b++)
{
if(a>=8)break;
if(a%2==1)
{
a+=5;
continue;
}
a-=3;

}

printf("%d\n",b);

}

这个结果是4 为什么呢??我觉得应该是5啊
恩。。。。。。。你们的我都看不懂哎 后面不是有个a-=3吗 怎么我觉得你们好像把它给忘了呢。。。。。。。还是那个不用算啊????

第一次循环后:a=6;b=2;
第二次循环后:a=3;b=3;
第三次循环后:a=8;b=4;
然后循环退出。
b++是在循环体执行完之后才执行的。

楼下的兄台,我写的是循环后的情况,呵呵~~~

b=1时,a=6.
b=2时,a=3.
b=3时,a经过a+=5后变成了8.
b=4时,a>=8 条件满足,并且退出循环。 所以循环不会再执行下一次的b++,那么b当前就是等于4.

楼上的说法有错误。b是先从b=1开始走循环的,而且并不是b++在循环结束后才执行,是在一次循环结束后,要开始下一次循环了b++,然后判断b是否满足循环条件,然后才走下面的循环。

for(语句1;语句2;语句3)

语句1
|
判断语句2是否满足————for循环下一个语句
|
|满足
|
语句3--判断语句2是否满足。。

初始值a=1,b=1;
第一次循环后:a=6,b=2;b<10,满足循环条件,进行第二次循环
第二次循环后:a=3,b=3,b<10,满足循环条件,进行第三次循环
第三次循环后:a=8;b=4,b<10,满足循环条件,进行第四次循环
第四次循环:a>=8,跳出循环体,b值没自增,仍为4.