if函数和for函数的运行

include<stdio.h>
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

ab
62
33
84

第三次循环的时候a>=8成立了直接break结束循环

a-=3不是每次都做得

break 退出整个循环
continue 退出本次循环,继续下一轮循环
break和continue后面的代码都不执行

第一轮开始前执行b = 1; 判断b <= 10
if (a >= 8)不满足 不执行
if (a % 2 == 1)满足 执行{ a += 5; continue; } 这里continue了 后面的代码一律不执行(这里指a -= 3;)直接继续下一轮循环 这时a=6

第二轮循环开始前执行b++ 这时b = 2 判断b <= 10
if (a >= 8)不满足 不执行
if (a % 2 == 1) { a += 5; continue; } 不满足 不执行
接着执行 a -= 3; 此时 a = 3

第三轮循环开始前执行b++ 这时b = 3 判断b <= 10
if (a >= 8)不满足 不执行
if (a % 2 == 1) { a += 5; continue; }满足 执行{ a += 5; continue; } 这里continue了 后面的代码一律不执行(这里指a -= 3;)直接继续下一轮循环 这时a=8

第四轮循环开始前执行b++ 这时b = 4 判断b <= 10
if (a >= 8) 满足 执行后面的 break;则退出整个循环
最后执行一次循环体外的printf("%d\n",b); 这里b = 4