#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?

一道C语言的程序运行算法的题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- 春休夏末 2022-03-25 23:13关注
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本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用