一道C语言的程序运行算法的题

#include<stdio.h>
void main()
{
int i,a=0,b=0;
for(i=1;i<10;i++)
{
if(i%2==0)
{
a++;
continue;
}
b++;
}
printf("a=%d,b=%d",a,b);
}
这个的输出结果是a=4,b=5
我不明白的是,定义a的变量是0当if语句成立a就执行了a++,可为什么结果是4,同理当if语句不成立的时候为什么b++的结果是5?

i的值变化为 1 2 3 4 5 6 7 8 9 总共会进入循环9次
其中 i%2 == 0 有 2 4 6 8 四次 所以 执行了4次 a++ a++ 就是a = a + 1 所以 i = 4
每次a++之后执行了continue ,continue 会跳过后面的代码 直接执行for中的 i++ 所以不会执行到b++,b不会变化
其中 i%2 != 0的情况有 1 3 5 7 9 5次 所以执行了5次 b++ 所以 b = 5

你具体不明白什么
i是偶数时,a+1,一共4个偶数
i是奇数时,b+1,一共5个奇数

当i取2的倍数时,执行a++,即i可取2468四个数,则执行四次,每执行一次都加一,四次就加四,故a=4。当i取奇数时,即13579五个数,就执行五次b++
则b=5。
continue 的作用是结束本次循环,即continue后面的语句不再进行,而直接进入下一次循环。因此,当i取偶数时,只执行a++。

i=9时,a=4,b=5
由于i++在运算后自动加一,所以在第九次循环后i=10,条件不成立了也就结束循环。

难道不可以多带值进行演算吗?刚开始要多试错

好的,谢谢我明白了!